我需要从网络服务器向移动客户端提供长视频(约2小时(,客户端应该能够通过Chromecast
播放视频。为此,我选择了mpeg-dash
:视频编码器是h.264
(4.1级(,音频是aac
(尽管我尝试过不同的(。
我尝试过ffmpeg
、MP4Box
和其他一些生成视频的工具;大多数时候,我成功地在VLC或移动客户端(本地(上播放了它们,但没有用Chromecast。
我试过亚马逊的Elastic Transcoder
,它很有效,但它给了我一个大文件,而我需要很多小文件段。
CORS已设置。
Chromecast远程调试没有多大帮助。
你知道怎么做吗?
最后,我成功地做到了。这是一个将视频文件转换为带有许多片段的dash的脚本,可以由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
正如您所看到的,首先我对输入文件进行编码;然后我使用CCD_ 8将其转换为破折号。注意,Chromecast可能无法播放2个以上音频通道的视频(我在-ac 2
中使用2个(。