首页 > 解决方案 > 如何使用 ffmpeg 为 Chromecast 创建 DASH VOD?

问题描述

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

我已经尝试过ffmpegMP4Box以及其他一些生成视频的工具;大多数时候我成功地在 VLC 或移动客户端(本地)上播放它们,但不是用 Chromecast。

我已经尝试过亚马逊的Elastic Transcoder并且它有效,但它给了我一个大文件,而我需要许多小片段。

CORS 已设置。

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

你知道怎么做吗?

标签: ffmpegchromecastgoogle-castmpeg-dashshaka

解决方案


最后,我设法做到了。这是将视频文件转换为带有许多可以由 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)。


推荐阅读