我正在使用ffmpeg-dash创建mpd文件。我正在使用以下命令生成相同的内容:
HeaderNavigationMenu
这适用于具有音频流的视频,但是对于视频文件中没有音频流的情况,我在mpd文件中获得如下音频的空条目,如下所示,该条目无效并且在Exo Player中播放时失败Android。
ffmpeg -i input/video.mov \
-map 0:v:0 -map 0:v:0 -map 0:v:0 -map 0:a\?:0 \
-b:v:0 350k -c:v:0 libx264 -filter:v:0 "scale=320:-1" \
-b:v:1 1000k -c:v:1 libx264 -filter:v:1 "scale=640:-1" \
-b:v:2 3000k -c:v:2 libx264 -filter:v:2 "scale=1280:-1" \
-use_timeline 1 -use_template 1 -window_size 6 -adaptation_sets "id=0,streams=v id=1,streams=a" \
-seg_duration 2 -threads 16 -hls_playlist true -f dash output/ffmpeg/output.mpd
我尝试将<AdaptationSet id="1" contentType="audio" segmentAlignment="true" bitstreamSwitching="true">
</AdaptationSet>
添加到选项适应集中,例如:?
,但这也添加了上面的行。
一种解决方案是通过首先检查是否有音频流来为不同的视频运行不同的命令,但是如果有一些选项仅在输入文件中存在音频流时才添加音频适应集,则效果会更好。