使用 FFMPEG 播放 MPEG-dash 流[关闭]
Posted
技术标签:
【中文标题】使用 FFMPEG 播放 MPEG-dash 流[关闭]【英文标题】:playing MPEG-dash streaming with FFMPEG [closed] 【发布时间】:2015-03-04 07:38:58 【问题描述】:我在使用 ffmpeg 播放 MPEG-dash 流时遇到问题。我知道有很多工具可以播放 MPEG-dash,例如 OSMO4、DASH.js。但是,我想知道我是否可以使用 FFMPEG 播放 MPEG-dash? 还有一个问题,播放 MPEG-dash 流时如何确定启动时间?这意味着,我从服务器请求 MPD 文件直到我在屏幕上获得第一张视频显示图片的持续时间? 谢谢!
【问题讨论】:
您可以使用ffmpeg -formats
和ffmpeg -codecs
来检查兼容性
【参考方案1】:
ffmpeg 现在可以(门票:5269,7382 已修复)播放 MPEG DASH,但您需要确保在二进制文件中启用了支持(这似乎并不常见,因为 DASH 解复用支持似乎并不默认情况下通常启用)。正如@aergistal 在 cmets 中提到的,您可以检查破折号解复用支持(根据 DASH MPD,您还需要适当的编解码器支持,但通常启用大多数常用编解码器):
ffmpeg -formats | grep dash
应该显示(D
表示支持 Demuxing,E
表示支持 muxing):
DE dash DASH Muxer
如果您没有看到 DASH Demuxing 支持,那么您需要(重新)编译 ffmpeg。 Download源码,解压并进入src代码目录,然后使用configure开启dash demuxing support(如果没有libxml2
support,还需要安装):
ffmpeg-X.X.X$ ./configure --enable-demuxer=dash --enable-libxml2
ffmpeg-X.X.X$ make
启用支持后,您应该可以像这样播放测试流:
ffplay http://dash.edgesuite.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd
回答您的第二个问题 - 启动延迟取决于下载 MPD 并执行 MPD 中的操作所需的时间 - 通常它需要下载初始化段,然后在开始播放之前获取第一个媒体段.
【讨论】:
在 (4.2.3) 上使用这些选项构建。但是,当从 facebook 视频播放 mpd 时,ffmpeg 总是返回“HTTP error 403 Forbidden”。相反,VLC 可以毫无问题地播放相同的 mpd url。有什么想法吗?以上是关于使用 FFMPEG 播放 MPEG-dash 流[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
将 FFMPEG 编码为 MPEG-DASH - 或带有关键帧集群的 WebM - 用于 MediaSource API
Chromecast Receiver CAF,无限加载 MPEG-DASH 流,ShakaPlayer 访问
FFmpegffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )