[FFmpeg-devel] Matroska and PCM variants, error in encoding?

compn tempn at mi.rr.com
Mon Aug 3 14:14:30 CEST 2015


On Mon, 3 Aug 2015 13:27:48 +0200
"Romeyke, Andreas" <Andreas.Romeyke at slub-dresden.de> wrote:

> Dear FFMPEG-developer,
> 
> in case of digital preservation I want to convert/normalize videos to
> files with Matroska-Container, FFV1 video- and wave-PCM audiocodec.
> 
> I am using this commandline:
> 
> ffmpeg -i inputvideo.webm -c:v ffv1 -level 3 -g 1 -coder 1 -context 1
> -slices 16 -slicecrc 1 -report -c:a pcm_s32le -y outputvideo.mkv
> 
> This line works fine, but with "-c:a pcm_u24le" I got the error
> message: "[matroska @ 0x1a0adc0] No wav codec tag found for codec
> pcm_u32le"
> 
> Could you explain me, what was going wrong?

we support a lot of pcm formats from around the world. in this case,
either we are using the wrong matroska tag for pcm_u24le , or the tag
does not exist in matroska format.

http://matroska.org/technical/specs/codecid/index.html

says that we should be using A_PCM/INT/LIT or A_PCM/FLOAT/IEEE, i
believe.

in ffmpeg source, it says that u24le is:
 	PCM_CODEC (CODEC_ID_PCM_U24LE, SAMPLE_FMT_S32, pcm_u24le,"PCM
unsigned 24-bit little-endian")

but i'm not sure if that means u24le is an "int only" or a float. i'd
hope it is integer so that it is 100% lossless instead of float which
can differ on different hardware and cpu...

and i'm not sure how to get ffmpeg to use the "A_PCM/INT/LIT" tag.

to fix this, probably have to put some code in
libavformat/matroskaenc.c...

-compn


More information about the ffmpeg-devel mailing list