如何使用 ffmpeg 为 Chromecast 创建 DASH VOD?

Posted

技术标签:

【中文标题】如何使用 ffmpeg 为 Chromecast 创建 DASH VOD?【英文标题】:How to create a DASH VOD for Chromecast with ffmpeg? 【发布时间】:2020-11-06 12:45:01 【问题描述】:

我需要从网络服务器向移动客户端提供长视频(约 2 小时),客户端应该能够通过 Chromecast 播放视频。为此我选择了mpeg-dash:视频编码器为h.264(4.1 级),音频为aac(虽然我尝试过不同的编码器)。

我试过ffmpegMP4Box和其他一些工具来生成视频;大多数情况下,我都能在 VLC 或移动客户端(本地)上成功播放它们,但不能使用 Chromecast。

我试过亚马逊的Elastic Transcoder 并且成功了,但它给了我一个大文件,而我需要很多小片段。

CORS 已设置。

Chromecast 远程调试没有多大帮助。

你知道怎么做吗?

【问题讨论】:

【参考方案1】:

终于,我成功了。这是将视频文件转换为带有许多可以由 Chromecast 播放的片段的短划线的脚本:

ffmpeg -y -threads 8 \
-i input.ts \
-c:v libx264 \
-x264-params keyint=60:scenecut=0 \
-keyint_min 60 -g 60 \
-flags +cgop \
-pix_fmt yuv420p \
-coder 1 \
-bf 2 \
-level 41 \
-s:v 1920x1080 \
-b:v 6291456 \
-vf bwdif \
-r 30 \
-aspect 16:9 \
-profile:v high \
-preset slow \
-acodec aac \
-ab 384k \
-ar 48000 \
-ac 2 \
output.mp4 2> output/output1_ffmpeg.log \
\
&& MP4Box -dash 2000 \
-rap \
-out output/master.mpd \
-profile simple \
output.mp4#video output.mp4#audio 2> output/output2_mp4box.log

如您所见,首先我对输入文件进行编码;然后我使用MP4Box 将其转换为破折号。请注意,Chromecast 可能无法播放具有 2 个以上音频通道的视频(我使用 2 个和 -ac 2)。

【讨论】:

以上是关于如何使用 ffmpeg 为 Chromecast 创建 DASH VOD?的主要内容,如果未能解决你的问题,请参考以下文章

为 Chromecast 设置加载图标

为 chromecast 设置 cors 标头

我应该为 Chromecast 发现使用啥标志?

如何正确的使用 Chromecast+Tutorial?

如何使用 NanoHTTPD 将图像发送到 Chromecast

如何使用 DIAL 启动 Chromecast 应用程序