[FFmpeg-user] LLossless (10 Bit RGB 444) and (10 Bit YUV 422) Compression
Jason Freets
jasonslife at hotmail.com
Tue Dec 30 21:33:53 CET 2014
Ok Carl, so your fix does work! Wonderful! I can now use FFPlay to view the r10k (little endian) file on PC!
Read on ...
> Subject: Re: [FFmpeg-user] LLossless (10 Bit RGB 444) and (10 Bit YUV 422) Compression
> >
> > Could you test if the following file produced with
> > FFmpeg plays with the AJA codec on Windows?
> > $ ffmpeg -f lavfi -i testsrc -t 10 -vcodec r10k out.avi
>
> Yes, I will start looking at it =) Exciting! See, Christmas is not over yet. I will take FFmpeg out for a new spin.
>
> Cheers,
>
> Jason
However, this test actually result in a R10k (big endian) file and NOT an r10k (little endian) file.
See "r10k (R10k / 0x6B303152)" below...
////////////////////////////////////////////////////////////////////////////////
// Sample test filter -> R10k
////////////////////////////////////////////////////////////////////////////////
E:\ffmpeg-20141225-git-1515bfb-win64-static>ffmpeg -f lavfi -i testsrc -t 10 -vc
odec r10k out.avi
ffmpeg version N-68778-g5c7227b Copyright (c) 2000-2014 the FFmpeg developers
built on Dec 29 2014 22:12:54 with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enab
le-zlib
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 19.100 / 56. 19.100
libavformat 56. 16.102 / 56. 16.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 6.100 / 5. 6.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, lavfi, from 'testsrc':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1
DAR 4:3], 25 tbr, 25 tbn, 25 tbc
[swscaler @ 0000000000361000] full chroma interpolation for destination format '
rgb48le' not yet implemented
Output #0, avi, to 'out.avi':
Metadata:
ISFT : Lavf56.16.102
Stream #0:0: Video: r10k (R10k / 0x6B303152), rgb48le, 320x240 [SAR 1:1 DAR
4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc56.19.100 r10k
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> r10k (native))
Press [q] to stop, [?] for help
frame= 250 fps=0.0 q=0.0 Lsize= 75011kB time=00:00:10.00 bitrate=61449.4kbits
/s
video:75000kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing
overhead: 0.015310%
E:\ffmpeg-20141225-git-1515bfb-win64-static>
////////////////////////////////////////////////////////////////////////////////
// End
////////////////////////////////////////////////////////////////////////////////
Aside from the test above. It would seem I can take the original r10k (little endian) file and convert that to FFV1. But, going from FFV1 back to r10k there is the issue below:
////////////////////////////////////////////////////////////////////////////////
// FFV1 -> r10k
// Has the following warning message:
// Incompatible pixel format 'gbrp10le' for codec 'r10k', auto-selecting format 'rg
// b48le'
// [swscaler @ 0000000002bfcfe0] full chroma interpolation for destination format '
// rgb48le' not yet implemented
///////////////////////////////////////////////////////////////////////////////
E:\ffmpeg-20141225-git-1515bfb-win64-static>ffmpeg -i r10kToFFV.avi -pix_fmt gbr
p10le -vcodec r10k -c:a copy FFVTor10k.avi -f framemd5 -an FFVTor10k.framemd5
ffmpeg version N-68778-g5c7227b Copyright (c) 2000-2014 the FFmpeg developers
built on Dec 29 2014 22:12:54 with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enab
le-zlib
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 19.100 / 56. 19.100
libavformat 56. 16.102 / 56. 16.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 6.100 / 5. 6.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, avi, from 'r10kToFFV.avi':
Metadata:
encoder : Lavf56.16.102
Duration: 00:00:05.01, start: 0.000000, bitrate: 108456 kb/s
Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), gbrp10le, 720x486, 109169 kb/s
, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
Incompatible pixel format 'gbrp10le' for codec 'r10k', auto-selecting format 'rg
b48le'
[swscaler @ 0000000002bfcfe0] full chroma interpolation for destination format '
rgb48le' not yet implemented
Output #0, avi, to 'FFVTor10k.avi':
Metadata:
ISFT : Lavf56.16.102
Stream #0:0: Video: r10k (R10k / 0x6B303152), rgb48le, 720x486, q=2-31, 200
kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
Metadata:
encoder : Lavc56.19.100 r10k
Output #1, framemd5, to 'FFVTor10k.framemd5':
Metadata:
encoder : Lavf56.16.102
Stream #1:0: Video: rawvideo (G3[0][10] / 0xA003347), gbrp10le, 720x486, q=2
-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
Metadata:
encoder : Lavc56.19.100 rawvideo
Stream mapping:
Stream #0:0 -> #0:0 (ffv1 (native) -> r10k (native))
Stream #0:0 -> #1:0 (ffv1 (native) -> rawvideo (native))
Press [q] to stop, [?] for help
frame= 13 fps=0.0 q=0.0 q=0.0 size= 17775kB time=00:00:00.43 bitrate=335693.
frame= 36 fps= 35 q=0.0 q=0.0 size= 49213kB time=00:00:01.20 bitrate=335627.
frame= 59 fps= 38 q=0.0 q=0.0 size= 80652kB time=00:00:01.96 bitrate=335612.
frame= 82 fps= 40 q=0.0 q=0.0 size= 112090kB time=00:00:02.73 bitrate=335606.
frame= 105 fps= 40 q=0.0 q=0.0 size= 143528kB time=00:00:03.50 bitrate=335602.
frame= 128 fps= 41 q=0.0 q=0.0 size= 174967kB time=00:00:04.27 bitrate=335600.
frame= 150 fps= 42 q=0.0 q=0.0 size= 205038kB time=00:00:05.00 bitrate=335598.
frame= 150 fps= 42 q=0.0 Lq=0.0 size= 205040kB time=00:00:05.00 bitrate=335602
.4kbits/s
video:512578kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxin
g overhead: unknown
////////////////////////////////////////////////////////////////////////////////
// End
////////////////////////////////////////////////////////////////////////////////
So 2 questions:
1) What are your thoughts on this warning message or what does it mean:
Incompatible pixel format 'gbrp10le' for codec 'r10k', auto-selecting format 'rg
b48le'
[swscaler @ 0000000002bfcfe0] full chroma interpolation for destination format '
rgb48le' not yet implemented
2) Going from r10k -> FFV1, a framemd5 can be created. This is good. However, I'd like to be able to produce a framemd5 going back from FFV1 -> r10k. Would this be possible if the "full chroma interpolation" was implemented? Or? What's the possiblity of making this round trip (r10k -> FFV1 -> r10k) for validation purposes? Otherwise, how does one verify that the ORIGINAL r10k -> FFV1 -> results in ORIGINAL r10k?
Cheers,
Jason
>
> >
> > Thanks, Carl Eugen
> >
> > _______________________________________________
> > ffmpeg-user mailing list
> > ffmpeg-user at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
More information about the ffmpeg-user
mailing list