[FFmpeg-user] Question about using Webm/Matroska container in audio transconding

Ivan Zderadicka ivan.zderadicka at gmail.com
Tue Dec 11 16:13:59 EET 2018


I'm using ffmpeg for transcoding of audio (audio book chapters) into 
Opus stream that is then being sent to client.

I'm using Ogg container and Webm or Matroska container for resulting audio.

To convert to Opus I use following command (here is pipe going to test 
file, normally is pipe consumed and send to socket):

ffmpeg -i kapitola.mp3 -y -map-metadata 0 -map a -acodec libopus -vbr on 
-b:a 24k -compression_level 6 -cutoff 12000 -f opus pipe:1 > test1.opus

Same for Webm container:

ffmpeg -i kapitola.mp3 -y -map-metadata 0 -map a -acodec libopus -vbr on 
-b:a 24k -compression_level 6 -cutoff 12000 -f webm pipe:1 > test1.webm

Now Webm result  does not contain duration of audio stream (while in 
case of Ogg container correct duration is there), which basically means 
that result is not
seekable in client player.

If output of ffmpeg is a local file, not pipe, then duration is present. 
So I assume in case of Webm duration is added to file later ( same issue 
also for Matroska container).

Now my question is -  is there any workaround for this, am I missing 
something in arguments? Or is it intrinsic to Webm/Matroska container 
and nothing can be done about it, when output is pipe?
Why it works for Ogg and not for Webm?


More information about the ffmpeg-user mailing list