首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FFmpeg开发笔记(二十七)解决APP无法访问ZLMediaKit的直播链接问题

关于如何在Qt工程中引入FFmpeg,可参考《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章  FFmpeg的桌面开发”。...《FFmpeg开发实战:从零基础到短视频上线》一书的“第12章  FFmpeg的移动开发”介绍了如何在手机APP上集成FFmpeg。...但是如果手机APP不走FFmpeg,通过其他途径访问直播地址之时,却发现无法播放ZLMediaKit的HLS直播地址http://124.***.***.***:8080/live/test/hls.m3u8...于是检查ZLMediaKit的源代码,发现ZLMediaKit内部对于HTTP地址增加了Cookie校验,原来这套校验规则适配了FFmpeg,却尚未适配ExoPlayer,也未适配小程序。...更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。​

11910
您找到你想要的搜索结果了吗?
是的
没有找到

Ijkplayer、ExoPlayer、VLC播放器综合比较

开发的一个播放器软件,目前支持Android和iOS两种平台,ffmpeg是音视频领域的大山,基本上做音视频开发的根本绕不过去,所以ijkplayer采用ffmpeg作为音视频播放器的基础也是可以理解的...; ffmpeg中提供了ffplay 和 SDL(Simple DirectMedia Layer) 功能模块,是ffmpeg 视频播放的集大成;整个ijkplayer就是以ffplay基础展开的;...IjkPlayer的架构以FFplay核心,FFplay基于FFmpegFFmpeg具备强大的扩展性,所以Ijkplayer的拓展能力主要是FFmpeg的拓展能力; IjkPlayer的整体流程比较清晰...; 2.视频解码无法接入软解,可扩展性一般; 3.适合播放场景简单的项目,播放过程中无切换码流的情况; ---- ExoPlayer 会替代MediaPlayer成为Android平台上的默认播放器吗?...不会,两个原因: Android 5.0 之后Android的Codec架构做了依次重大调整,放弃了AwesomePlayer ,使用NuPlayer架构,ExoPlayer 没有做过多的兼容; ExoPlayer

7.9K20

音视频领域火爆的开源项目

1.ffmpeg https://github.com/FFmpeg/FFmpeg ffmpeg应该是音视频入门必须要掌握的开源项目,涉及到音视频从生产到消费的完整过程,ffmpeg是一个综合性项目,...涉及到非常多的知识点; ffmpeg 从模块上划分可以分为下面几个模块: libavutil:ffmpeg中通用的工具库,其他模块的通用功能会调用到这儿; libavformat:音视频封装格式处理模块...编译出来的包过大,约20M,这是工程开发无法忍受的; vlc的更新节奏非常快,不像ijkplayer,目前基本上没有太多bilibili公司的人维护了; 6.mp4parser https://github.com...https://github.com/google/ExoPlayer ExoPlayer是google开源的一个播放器库,是基于MediaPlayer的一个扩展,核心原理是分离音频和视频流,然后基于...MediaCodec硬解码解析数据,目前的稳定性比较好,而且效率较高;如果你的视频源本身比较简单或者播放过程中不涉及码流的切换等等,建议还是选择ExoPlayer,播放效果更佳; 9.MediaSDK

2K10

企鹅FM(Android) 播放成功率从 2 个 9 到 3 个 9 的蜕变

作者:张陈博男 业务层播放器架构演变 企鹅FM android端的播放器架构经历过两次较大的调整 第一次是2.1版本,首次引入了以FFmpeg基础的腾讯视频SDK,替换了之前一直使用的系统播放器,结束了不同机型上表现不一和调用其...一套统一的代码,这也是作为一个优秀的业务播放器的必备条件,否则假如建立在系统播放器基础上(各个厂商都会修改系统播放器代码),同样的实现在不同的机型上几乎无法做到表现一致,更遑论成功率了(常常是改动了调用方式后...腾讯视频很完善,具备一切我们需要的功能,但是太过于庞杂:最下层是FFmpeg,然后是C++实现的播放器逻辑,上层一个java接口层和部分逻辑。...其次、C/C++层的逻辑一旦出异常,堆栈极其难以定位到原因,而且就算定位到了,FFmpeg带来的问题也比较棘手。再次、处理数据就必须经过多次jni传递,这降低了效率。 本地代理带来的结构上的冗余。...引入本地代理是因为腾讯视频SDK的请求部分是写死的,无法在其中再加入我们自身的比如文件头zip压缩和分片下载缓存的逻辑。

3.8K00

选择最新 Chromium,支持 H264 H265

联想到 Chromium 文档中有提到专有解码器的,原话: 此外,您可能希望包括对专有音频和视频编解码器的支持,就像 Google 的 WebView 所做的那样。...这些编解码器可能受到专利或许可协议的保护,在分发包含它们的 WebView 构建之前,您应该寻求法律建议。 因为平台是支持硬解 H264 / H265 的,没有联想到和这个有关系。...赶紧加到编译选项中: ffmpeg_branding = "Chrome" proprietary_codecs = true 问题得到圆满的解决?答案是没有。...exoplayer 的项目地址: https://github.com/google/ExoPlayer 构建和安装 exoplayer 后,可以使用命令行来播放指定的视频: $ adb shell am...start -a com.google.android.exoplayer.demo.action.VIEW -d 如果某种格式在 chromium 中无法播放,先使用 exoplayer

72330

QQ音乐MV播放杂音问题解析

结合上图,总结关键步骤(图中内容从左往右,以音频解码播放例): 播放器初始化: stream_open主要创建读数据线程read_thread 创建存放audio解码前数据的队列audioq 创建存放...备注: ExoPlayer对多音频流的ts分片支持不完善(issue),因此测试时需要调整相关接口。...,互换音频流后无法明显差别,通过合成第三条音频流,来验证是它是对所有音频流全播放 ffmpeg -i INPUT_FILE_1 -i INPUT_FILE_2  -map 0:0 -map 0:1 -map...0:2 -map 1:0 -c copy OUTPUT_FILE 总结 从以上数据看到,iOS和PC端会默认选择第一条流,而在Android端的FFmpegExoPlayer会根据音频流属性来选择数值更好的一条...但以上2个选择方案都无法识别“内容异常”的音频流。 解决方案 因此处理该问题,需要从音源上进行修复和规避。

5.3K10

06——FFmpeg视频添加水印

你好,欢迎回来,上一讲我们说了如何使用FFmpeg实现音视频格式的转换!实际的应用场景中,相信你也会碰到视频添加水印的需求,一来是标明视频的所属权,二来也起到一定的宣传作用!...而这一目标,同样通过FFmpeg命令行,就可以帮助我们实现!让我们一起来看一下如何做: 一、准备工作 视频文件和环境准备工作,与前面一致,不再赘述!...操作命令行: ffmpeg -i 2_6.mp4 -vf "movie=logo.png[wm];[in][wm]overlay=100:50[out]" 2_6_out.mp4 执行完此命令之后,会得到名为...三、具体命令解析 -i:表示指定输入文件 -vf:表示设置视频滤镜(vf即video filter得缩写) " ":上述命令中,引号中的内容具体的滤镜的内容 滤镜的具体内容解释: 滤镜的一般格式:...滤镜名称=滤镜具体的内容(可以有多个); 本例中使用的滤镜: movie:movie滤镜 movie滤镜具体内容:logo.png[wm];[in][wm] (使用logo.png,定义标签[wm

3K10

Android FFmpeg系列07--音画同步

引言 在前面的Demo中,我们已经分别在独立的线程中实现了对视频的解码渲染和音频的解码播放功能 Android FFmpeg系列03--视频解码与渲染 Android FFmpeg系列05--音频解码与播放...只需要在合理的区间内相互追赶就行,所以说音视频的同步是动态的、是暂时的,不同步则是常态 无感知区间:音频帧和视频帧显示的时间戳差值在-100ms~+25ms之间 能感知区间:音频滞后在-100ms以上或者超前了25ms+ 无法接受的区间...ffplay,exoplayer都是如此 音画同步的关键在于计算视频和音频时间的diff和计算最终的delay,在ffplay.c源码中通过如下函数计算 static double compute_target_delay...,以及呈现该帧的估计时间 该接口的注意事项: 该接口不一定都支持,不支持的时候会返回0; 在音频管道初始预热阶段,可能无法连续更新时间戳; 该接口不应该太频繁调用,频繁调用会导致CPU负担,电量损耗过大...;exoplayer中是每500ms查询一次 AudioTrack#getPlaybackHeadPosition() (api level 3+) 返回当前播放的头位置(以帧单位) 计算最新的音频时间戳

1.4K40

构建SDDC哪般?

“SDDC的第一大推动力是速度,其次是需要让开发人员公司编写应用,以便实现快速转型。目前速度是第一要务。”...英特尔的架构应用开发者提供了5个API:一个用于计算、一个用于网络、两个分别用于模块和对象存储,一个用于身份管理。...他们希望完全搞清楚如电源和冷却层的管理情况,然而有些问题目前是就连OpenStack也无法解决。 OpenStack基金会执行董事Jonathan Bryce称,目前可以获得的功能都已经稳定下来了。...他称:“一段时间之后,你可能无法在多家云服务提供商并存的情况下使用它们。”...这也是为什么公有云[注]提供商更愿意构建自己的解决方案的原因。 Kerravala称:“技术上的小差异可能会导致服务质量上的大不同。不过,大多数企业都希望进一步降低配置成本。”

78660
领券