Hello everyone, I have recorded my screen with some recording software, and encoded the video as lossless h.264, rgb. I've saved the file as "source_lossless_rgb.mp4", and then lossy encoded it: ffmpeg -i source_lossless_rgb.mp4 -c:v libx264rgb rgb.mp4 And I've created another lossy version, in yuv420p format: ffmpeg -i source_lossless_rgb.mp4 -c:v libx264 -pix_fmt yuv420p yuv420p.mp4 When playing the two videos using Media Player Classic / VLC, text and icons in the yuv420 video are a little blurry. Is it possible to create an exact translation from rgb to yuv420, so no blur will be introduced? Here is the link for the videos. The video is 3 seconds long, and has very small frame, the total size of the three videos is 50k: https://www.dropbox.com/s/8x6k1eeq0g16g0h/videos.zip?dl=0 (at the top right corner of the screen, click on 'download') You have to play them in their actual size in order to see that the rgb video is sharp, so you can compare it to the yuv video. Linked files: 1. source_lossless_rgb.mp4 - The source file to be encoded. 2. rgb.mp4 - A lossy encoding (crf=23) of the source file, keeping the RGB color space. 3. yuv420p.mp4 - A lossy encoding (crf=23) of the source file, converting the color space to yuv420p. And here are the logs: Log for the rgb video: ---------------------------------------------------------------- ffmpeg -i source_lossless_rgb.mp4 -c:v libx264rgb rgb.mp4 ffmpeg version N-91314-gbd47cca6a7 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7.3.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth libavutil 56. 18.102 / 56. 18.102 libavcodec 58. 20.102 / 58. 20.102 libavformat 58. 17.100 / 58. 17.100 libavdevice 58. 4.101 / 58. 4.101 libavfilter 7. 25.100 / 7. 25.100 libswscale 5. 2.100 / 5. 2.100 libswresample 3. 2.100 / 3. 2.100 libpostproc 55. 2.100 / 55. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'source_lossless_rgb.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.17.100 Duration: 00:00:03.03, start: 0.000000, bitrate: 58 kb/s Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), gbrp(tv, gbr/unknown/unknown), 452x176, 55 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default) Metadata: handler_name : VideoHandler Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264rgb)) Press [q] to stop, [?] for help [libx264rgb @ 0000020894f4bd80] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 SlowShuffle [libx264rgb @ 0000020894f4bd80] profile High 4:4:4 Predictive, level 1.3, 4:4:4 8-bit [libx264rgb @ 0000020894f4bd80] 264 - core 155 r2901 7d0ff22 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html[https://deref-mail.com/mail/client/vn9SOCO7rZg/dereferrer/?redirectUrl=http%3A%2F%2Fwww.videolan.org%2Fx264.html] - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'rgb.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.17.100 Stream #0:0(und): Video: h264 (libx264rgb) (avc1 / 0x31637661), rgb24, 452x176, q=-1--1, 30 fps, 15360 tbn, 30 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.20.102 libx264rgb Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 frame= 91 fps=0.0 q=-1.0 Lsize= 15kB time=00:00:02.93 bitrate= 41.5kbits/s speed=8.18x video:13kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 14.538473% [libx264rgb @ 0000020894f4bd80] frame I:1 Avg QP:19.88 size: 10907 [libx264rgb @ 0000020894f4bd80] frame P:23 Avg QP:26.18 size: 33 [libx264rgb @ 0000020894f4bd80] frame B:67 Avg QP:29.67 size: 14 [libx264rgb @ 0000020894f4bd80] consecutive B-frames: 1.1% 2.2% 0.0% 96.7% [libx264rgb @ 0000020894f4bd80] mb I I16..4: 63.0% 0.0% 37.0% [libx264rgb @ 0000020894f4bd80] mb P I16..4: 0.1% 0.0% 0.0% P16..4: 0.6% 0.0% 0.0% 0.0% 0.0% skip:99.2% [libx264rgb @ 0000020894f4bd80] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.2% 0.0% 0.0% direct: 0.0% skip:99.8% L0: 2.4% L1:97.6% BI: 0.0% [libx264rgb @ 0000020894f4bd80] coded y,u,v intra: 18.4% 18.8% 22.1% inter: 0.0% 0.0% 0.0% [libx264rgb @ 0000020894f4bd80] i16 v,h,dc,p: 42% 58% 0% 0% [libx264rgb @ 0000020894f4bd80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 37% 40% 9% 2% 2% 3% 2% 3% 2% [libx264rgb @ 0000020894f4bd80] Weighted P-Frames: Y:0.0% UV:0.0% [libx264rgb @ 0000020894f4bd80] ref P L0: 55.3% 6.4% 36.2% 2.1% [libx264rgb @ 0000020894f4bd80] ref B L0: 0.0% 100.0% [libx264rgb @ 0000020894f4bd80] ref B L1: 90.2% 9.8% [libx264rgb @ 0000020894f4bd80] kb/s:33.21 Log for the yuv420 video: ----------------------------------------------------------- ffmpeg -i source_lossless_rgb.mp4 -c:v libx264 -pix_fmt yuv420p yuv420p.mp4 ffmpeg version N-91314-gbd47cca6a7 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7.3.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth libavutil 56. 18.102 / 56. 18.102 libavcodec 58. 20.102 / 58. 20.102 libavformat 58. 17.100 / 58. 17.100 libavdevice 58. 4.101 / 58. 4.101 libavfilter 7. 25.100 / 7. 25.100 libswscale 5. 2.100 / 5. 2.100 libswresample 3. 2.100 / 3. 2.100 libpostproc 55. 2.100 / 55. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'source_lossless_rgb.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.17.100 Duration: 00:00:03.03, start: 0.000000, bitrate: 58 kb/s Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), gbrp(tv, gbr/unknown/unknown), 452x176, 55 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default) Metadata: handler_name : VideoHandler Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 000002e4bb74bd40] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 SlowShuffle [libx264 @ 000002e4bb74bd40] profile High, level 1.3 [libx264 @ 000002e4bb74bd40] 264 - core 155 r2901 7d0ff22 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html[https://deref-mail.com/mail/client/vn9SOCO7rZg/dereferrer/?redirectUrl=http%3A%2F%2Fwww.videolan.org%2Fx264.html] - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'yuv420p.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.17.100 Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 452x176, q=-1--1, 30 fps, 15360 tbn, 30 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.20.102 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 frame= 91 fps=0.0 q=-1.0 Lsize= 9kB time=00:00:02.93 bitrate= 26.0kbits/s speed=9.21x video:7kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 25.401844% [libx264 @ 000002e4bb74bd40] frame I:1 Avg QP:18.41 size: 5334 [libx264 @ 000002e4bb74bd40] frame P:23 Avg QP:23.47 size: 24 [libx264 @ 000002e4bb74bd40] frame B:67 Avg QP:27.67 size: 15 [libx264 @ 000002e4bb74bd40] consecutive B-frames: 1.1% 2.2% 0.0% 96.7% [libx264 @ 000002e4bb74bd40] mb I I16..4: 64.3% 5.6% 30.1% [libx264 @ 000002e4bb74bd40] mb P I16..4: 0.0% 0.1% 0.0% P16..4: 0.1% 0.0% 0.0% 0.0% 0.0% skip:99.8% [libx264 @ 000002e4bb74bd40] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.3% 0.0% 0.0% direct: 0.0% skip:99.7% L0:67.1% L1:32.9% BI: 0.0% [libx264 @ 000002e4bb74bd40] 8x8 transform intra:7.4% inter:50.0% [libx264 @ 000002e4bb74bd40] coded y,uvDC,uvAC intra: 21.9% 24.0% 23.7% inter: 0.0% 0.0% 0.0% [libx264 @ 000002e4bb74bd40] i16 v,h,dc,p: 24% 76% 0% 0% [libx264 @ 000002e4bb74bd40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 66% 6% 25% 0% 2% 0% 1% 0% 0% [libx264 @ 000002e4bb74bd40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 42% 29% 12% 2% 2% 4% 3% 4% 3% [libx264 @ 000002e4bb74bd40] i8c dc,h,v,p: 53% 34% 12% 1% [libx264 @ 000002e4bb74bd40] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 000002e4bb74bd40] ref P L0: 83.3% 8.3% 8.3% [libx264 @ 000002e4bb74bd40] ref B L0: 6.4% 93.6% [libx264 @ 000002e4bb74bd40] ref B L1: 91.3% 8.7% [libx264 @ 000002e4bb74bd40] kb/s:18.20 ------------------------------------------------------------------------------------------------- Thanks for any help. _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
