Ramesh Navi
Ramesh Navi

Reputation: 773

Specifying track title or language in MPEG DASH MANIFEST

I am creating a manifest to playback Adaptive WebM using DASH. Everything working pretty fine but I need language-name/track-name instead of bitrate. Is it supported? How can update/optimize to support such feature?

Manifest creation:

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

Player audio track selection:

enter image description here

Upvotes: 1

Views: 1325

Answers (1)

Ramesh Navi
Ramesh Navi

Reputation: 773

Finally, after changing a couple of DASH players and encoders, this is how I solved it.

The problem was not in manifest creation but in input file preparation. I added metadata to input files like below and it worked. Tested in Shaka-player, works like charm.

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

It uses ISO 639-2 language codes like: Wiki: ISO 639-2 language codes

Upvotes: 2

Related Questions