使用 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 -formatsffmpeg -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

是否可以使用 MPEG-DASH 流式传输多帧率视频?

VLC 播放器上的 MPEG-DASH 支持

用于实时流媒体的 MPEG-DASH 编码

Chromecast Receiver CAF,无限加载 MPEG-DASH 流,ShakaPlayer 访问

FFmpegffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )