[FFmpeg-user] yuv422p16le silently converted to yuv422p10le - even if pix_fmt is set to 16bit

Peter B. pb at das-werkstatt.com
Tue Oct 2 15:59:53 CEST 2012


Just stumbled over an odd thing:

Transcoding the .yuv10 image sequence from v210x/yuv422p16le to  
ffv1.3, seems to silently be converted to yuv422p10le?

Here's the commandline and uncut console output:
//-------------------------
$ ffmpeg -f image2 -s 1920x1080 -r 25 -i  
'client/VQEG/HDTV/SVT_exports/SVT_YUV10_Ex
ports_/NewMobCal_YUV10_1080i25_/NM_%05d.yuv10' -an -vcodec ffv1  
-strict experimental -slices 24 -slicecrc 0 -g 1 client/test-p16le2.avi
//-------------------------
ffmpeg version N-44894-g5f1c3c7 Copyright (c) 2000-2012 the FFmpeg developers
   built on Sep 30 2012 04:26:08 with gcc 4.4.5 (Debian 4.4.5-8)
   configuration: --prefix=/usr/local --enable-gpl --enable-nonfree  
--enable-version3 --enable-postproc --enable-swscale --enable-avfilter  
--enable-pthreads --enable-bzlib --enable-libmp3lame  
--enable-libvorbis --enable-libxvid --enable-zlib --enable-libopenjpeg  
--enable-decoder=png --enable-encoder=png --enable-libfreetype  
--enable-libschroedinger
   libavutil      51. 73.101 / 51. 73.101
   libavcodec     54. 61.100 / 54. 61.100
   libavformat    54. 29.105 / 54. 29.105
   libavdevice    54.  3.100 / 54.  3.100
   libavfilter     3. 18.100 /  3. 18.100
   libswscale      2.  1.101 /  2.  1.101
   libswresample   0. 16.100 /  0. 16.100
   libpostproc    52.  1.100 / 52.  1.100
[image2 @ 0xa4ee660] Stream #0: not enough frames to estimate rate;  
consider increasing probesize
Input #0, image2, from  
'client/VQEG/HDTV/SVT_exports/SVT_YUV10_Exports_/NewMobCal_YUV10_1080i25_/NM_%05d.yuv10':
   Duration: 00:00:10.08, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: v210x, yuv422p16le, 1920x1080, 25 tbr, 25 tbn, 25 tbc
[ffv1 @ 0xa4efd00] bits_per_raw_sample > 8, forcing coder 1
Output #0, avi, to 'client/test-p16le2.avi':
   Metadata:
     ISFT            : Lavf54.29.105
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p16le,  
1920x1080, q=2-31, 200 kb/s, 25 tbn, 25 tbc
Stream mapping:
   Stream #0:0 -> #0:0 (v210x -> ffv1)
Press [q] to stop, [?] for help
frame=  252 fps=1.6 q=0.0 Lsize=  747790kB time=00:00:10.08  
bitrate=607727.6kbits/s
video:747778kB audio:0kB subtitle:0 global headers:0kB muxing overhead  
0.001550%
// ----------------

It says that the input video is: "v210x, yuv422p16le", and that it  
will produce the output as: "ffv1 (FFV1 / 0x31564646), yuv422p16le".  
Everything fine.

When ffprobing the resulting "test-p16le2.avi", it says it's  
"yuv422p10le" (!):

//-------------------------
$ ffprobe client/test-p16le2.avi
//-------------------------
ffprobe version N-44894-g5f1c3c7 Copyright (c) 2007-2012 the FFmpeg developers
   built on Sep 30 2012 04:26:08 with gcc 4.4.5 (Debian 4.4.5-8)
   configuration: --prefix=/usr/local --enable-gpl --enable-nonfree  
--enable-version3 --enable-postproc --enable-swscale --enable-avfilter  
--enable-pthreads --enable-bzlib --enable-libmp3lame  
--enable-libvorbis --enable-libxvid --enable-zlib --enable-libopenjpeg  
--enable-decoder=png --enable-encoder=png --enable-libfreetype  
--enable-libschroedinger
   libavutil      51. 73.101 / 51. 73.101
   libavcodec     54. 61.100 / 54. 61.100
   libavformat    54. 29.105 / 54. 29.105
   libavdevice    54.  3.100 / 54.  3.100
   libavfilter     3. 18.100 /  3. 18.100
   libswscale      2.  1.101 /  2.  1.101
   libswresample   0. 16.100 /  0. 16.100
   libpostproc    52.  1.100 / 52.  1.100
Input #0, avi, from 'client/test-p16le2.avi':
   Metadata:
     encoder         : Lavf54.29.105
   Duration: 00:00:10.08, start: 0.000000, bitrate: 607727 kb/s
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p10le,  
1920x1080, 25 tbr, 25 tbn, 25 tbc
//-------------------------

This even is the case when setting the target pix_fmt to "yuv422p16le":

//-------------------------
ffmpeg -f image2 -s 1920x1080 -r 25 -i  
'client/VQEG/HDTV/SVT_exports/SVT_YUV10_Exports_/NewMobCal_YUV10_1080i25_/NM_%05d.yuv10' -an -vcodec ffv1 -strict experimental -slices 24 -slicecrc 0 -g 1 -pix_fmt yuv422p16le  
client/test-p16le3.avi
//-------------------------
ffmpeg version N-44894-g5f1c3c7 Copyright (c) 2000-2012 the FFmpeg developers
   built on Sep 30 2012 04:26:08 with gcc 4.4.5 (Debian 4.4.5-8)
   configuration: --prefix=/usr/local --enable-gpl --enable-nonfree  
--enable-version3 --enable-postproc --enable-swscale --enable-avfilter  
--enable-pthreads --enable-bzlib --enable-libmp3lame  
--enable-libvorbis --enable-libxvid --enable-zlib --enable-libopenjpeg  
--enable-decoder=png --enable-encoder=png --enable-libfreetype  
--enable-libschroedinger
   libavutil      51. 73.101 / 51. 73.101
   libavcodec     54. 61.100 / 54. 61.100
   libavformat    54. 29.105 / 54. 29.105
   libavdevice    54.  3.100 / 54.  3.100
   libavfilter     3. 18.100 /  3. 18.100
   libswscale      2.  1.101 /  2.  1.101
   libswresample   0. 16.100 /  0. 16.100
   libpostproc    52.  1.100 / 52.  1.100
[image2 @ 0xa97a660] Stream #0: not enough frames to estimate rate;  
consider increasing probesize
Input #0, image2, from  
'client/VQEG/HDTV/SVT_exports/SVT_YUV10_Exports_/NewMobCal_YUV10_1080i25_/NM_%05d.yuv10':
   Duration: 00:00:10.08, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: v210x, yuv422p16le, 1920x1080, 25 tbr, 25 tbn, 25 tbc
[ffv1 @ 0xa97bd40] bits_per_raw_sample > 8, forcing coder 1
Output #0, avi, to 'client/test-p16le3.avi':
   Metadata:
     ISFT            : Lavf54.29.105
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p16le,  
1920x1080, q=2-31, 200 kb/s, 25 tbn, 25 tbc
Stream mapping:
   Stream #0:0 -> #0:0 (v210x -> ffv1)
Press [q] to stop, [?] for help
frame=  252 fps=1.7 q=0.0 Lsize=  747790kB time=00:00:10.08  
bitrate=607727.6kbits/s
video:747778kB audio:0kB subtitle:0 global headers:0kB muxing overhead  
0.001550%
//-------------------------


//-------------------------
$ ffprobe client/test-p16le3.avi
//-------------------------
ffprobe version N-44894-g5f1c3c7 Copyright (c) 2007-2012 the FFmpeg developers
   built on Sep 30 2012 04:26:08 with gcc 4.4.5 (Debian 4.4.5-8)
   configuration: --prefix=/usr/local --enable-gpl --enable-nonfree  
--enable-version3 --enable-postproc --enable-swscale --enable-avfilter  
--enable-pthreads --enable-bzlib --enable-libmp3lame  
--enable-libvorbis --enable-libxvid --enable-zlib --enable-libopenjpeg  
--enable-decoder=png --enable-encoder=png --enable-libfreetype  
--enable-libschroedinger
   libavutil      51. 73.101 / 51. 73.101
   libavcodec     54. 61.100 / 54. 61.100
   libavformat    54. 29.105 / 54. 29.105
   libavdevice    54.  3.100 / 54.  3.100
   libavfilter     3. 18.100 /  3. 18.100
   libswscale      2.  1.101 /  2.  1.101
   libswresample   0. 16.100 /  0. 16.100
   libpostproc    52.  1.100 / 52.  1.100
Input #0, avi, from 'client/test-p16le3.avi':
   Metadata:
     encoder         : Lavf54.29.105
   Duration: 00:00:10.08, start: 0.000000, bitrate: 607727 kb/s
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p10le,  
1920x1080, 25 tbr, 25 tbn, 25 tbc
//-------------------------

Why is this so?

Thanks,
Pb




More information about the ffmpeg-user mailing list