ffmpeg - 在 MPEG DASH MANIFEST 中指定轨道标题或语言

标签 ffmpeg video-streaming html5-video webm

我正在创建一个 list 以使用 DASH 播放自适应 WebM。一切都很好,但我需要语言名称/轨道名称而不是比特率。是否支持?如何更新/优化以支持此类功能?

list 创建:

ffmpeg \
-f webm_dash_manifest -i webm240.webm \
-f webm_dash_manifest -i webm360.webm \
-f webm_dash_manifest -i webm480.webm \
-f webm_dash_manifest -i webm720.webm \
-f webm_dash_manifest -i audio1.webm \
-f webm_dash_manifest -i audio2.webm \
-f webm_dash_manifest -i audio3.webm \
-f webm_dash_manifest -i audio4.webm \
-c copy -map 0 -map 1 -map 2 -map 3 -map 4 -map 5 -map 6  -map 7 \
-f webm_dash_manifest \
-adaptation_sets "id=0,streams=0,1,2,3 id=1,streams=4,5,6,7" \
manifest.mpd

播放器音轨选择:

enter image description here

最佳答案

最后,在更换了几个 DASH 播放器和编码器后,我就是这样解决的。

问题不在于 list 创建,而在于输入文件准备。我在输入文件中添加了元数据,如下所示,它起作用了。
在 Shaka-player 中测试,像魅力一样工作。

ffmpeg -i input.mp4 -y -vn -acodec aac -ab 96k -dash 1 -metadata:s:a:0 language=hin audiohindi.mp4
ffmpeg -i input.mp4 -y -vn -acodec aac -ab 96k -dash 1 -metadata:s:a:0 language=tam audiotamil.mp4
ffmpeg -i input.mp4 -y -vn -acodec aac -ab 96k -dash 1 -metadata:s:a:0 language=kan audiokannada.mp4
ffmpeg -i input.mp4 -y -vn -acodec aac -ab 96k -dash 1 -metadata:s:a:0 language=tel audiotelugu.mp4

它使用 ISO 639-2 语言代码,例如:Wiki: ISO 639-2 language codes

关于ffmpeg - 在 MPEG DASH MANIFEST 中指定轨道标题或语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53663872/

相关文章:

php - Symfony6 + php8 = composer ffmpeg 安装依赖问题

c# - System.AccessViolationException : . NET运行时错误c#工作线程

video - 如何使用 ffmpeg 从视频中提取单个帧?

python - VideoWriter OpenCV - 无法将管道放在函数 CvVideoWriter_GStreamer::open 中播放

ffmpeg - 如何为 ffmpeg 制作的视频设置帧率

python - 如何使用 Python 检查网络摄像头的状态

javascript - 如何检测浏览器播放器是否可以处理视频格式

html - HTML 5 中的视频捕获

Javascript html5视频在特定时间添加/删除类

windows - Visual C++ 中的 FFmpeg 进度条