Hi, I was doing some tests with libaom and lossness encoding and with synthetic files and some real world files, I kept finding that the framemd5s for the first frame was different than the source, but every other libaom encoded frame produced matching framemd5s for source and output. I then tried with smaller frame counts, and with synthetic files, I found that all frames would produce matching framemd5s when there was between 1 and 7 frames in the input. Once you went to 8 frames and above, the first frame would produce a framemd5 mismatch.
here's a bunch of commands using ffmpeg git-master and what I assume to be libaom git master, or whatever the Ubuntu ffmpeg compilation wiki is using: 0) framemd5 output of the 8fr source - note the first frame value 1) Make a 8frame v210 via testsrc 2) Turn into av1 with -crf 0 3) get framemd5 of av1 output - note that first framemd5 value is different 4-6 - same as 1 to 3 but with a 7 frame testsrc file Any idea what's happening? Will I get the libx264-style answer: 'this is googles issue, not ffmpeg'0b1ae3e77528dcdacfab21761076d2b0b1ae3e77528dcdacfab21761076d2b /ffmpeg -i 8fr.mkv -f framemd5 - ffmpeg version N-98060-g1c32d7d Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/home/kieranjol/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/kieranjol/ffmpeg_build/include --extra-ldflags=-L/home/kieranjol/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/kieranjol/bin --enable-libaom libavutil 56. 50.100 / 56. 50.100 libavcodec 58. 90.100 / 58. 90.100 libavformat 58. 44.100 / 58. 44.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 84.100 / 7. 84.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 Input #0, matroska,webm, from '8fr.mkv': Metadata: ENCODER : Lavf58.44.100 Duration: 00:00:00.32, start: 0.000000, bitrate: 43031 kb/s Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p10le, 320x240, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 1k tbn, 1k tbc (default) Metadata: ENCODER : Lavc58.90.100 v210 DURATION : 00:00:00.320000000 Stream mapping: Stream #0:0 -> #0:0 (v210 (native) -> rawvideo (native)) Press [q] to stop, [?] for help #format: frame checksums #version: 2 #hash: MD5 #software: Lavf58.44.100 #tb 0: 1/25 #media_type 0: video #codec_id 0: rawvideo #dimensions 0: 320x240 #sar 0: 1/1 #stream#, dts, pts, duration, size, hash Output #0, framemd5, to 'pipe:': Metadata: encoder : Lavf58.44.100 Stream #0:0: Video: rawvideo (Y3[10][10] / 0xA0A3359), yuv422p10le, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 38400 kb/s, 25 fps, 25 tbn, 25 tbc (default) Metadata: DURATION : 00:00:00.320000000 encoder : Lavc58.90.100 rawvideo 0, 0, 0, 1, 307200, 50b1ae3e77528dcdacfab21761076d2b 0, 1, 1, 1, 307200, 8213a857506c099160fffb2f606f3590 0, 2, 2, 1, 307200, a5e0786c6d9d152c45e2d3a0122c8987 0, 3, 3, 1, 307200, fd93af578482e418d1378f6d9cd94f14 0, 4, 4, 1, 307200, abfca35c7aae65d1dcddee1ce370479f 0, 5, 5, 1, 307200, da151dbf22f7e818344d5efd0cbb6f09 0, 6, 6, 1, 307200, b87bdb747fbd80060f71585e7d2c6ac9 0, 7, 7, 1, 307200, af69163b6455654da3a37cf52cfc4525 frame= 8 fps=0.0 q=-0.0 Lsize= 1kB time=00:00:00.32 bitrate= 21.4kbits/s speed=33.1x video:2400kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown ./ffmpeg -f lavfi -i testsrc -c:v v210 -vframes 8 8fr.mkv ffmpeg version N-98060-g1c32d7d Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/home/kieranjol/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/kieranjol/ffmpeg_build/include --extra-ldflags=-L/home/kieranjol/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/kieranjol/bin --enable-libaom libavutil 56. 50.100 / 56. 50.100 libavcodec 58. 90.100 / 58. 90.100 libavformat 58. 44.100 / 58. 44.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 84.100 / 7. 84.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.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 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> v210 (native)) Press [q] to stop, [?] for help Output #0, matroska, to '8fr.mkv': Metadata: encoder : Lavf58.44.100 Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 40960 kb/s, 25 fps, 1k tbn, 25 tbc Metadata: encoder : Lavc58.90.100 v210 frame= 8 fps=0.0 q=-0.0 Lsize= 1681kB time=00:00:00.28 bitrate=49003.7kbits/s speed=39.4x video:1680kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.054408% kieranjol@POWERVIRUS:~/ffmpeg_sources/ffmpeg$ ./ffmpeg -i 8fr.mkv -c:v av1 -crf 0 8fr_av1.mkv ffmpeg version N-98060-g1c32d7d Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/home/kieranjol/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/kieranjol/ffmpeg_build/include --extra-ldflags=-L/home/kieranjol/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/kieranjol/bin --enable-libaom libavutil 56. 50.100 / 56. 50.100 libavcodec 58. 90.100 / 58. 90.100 libavformat 58. 44.100 / 58. 44.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 84.100 / 7. 84.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 Input #0, matroska,webm, from '8fr.mkv': Metadata: ENCODER : Lavf58.44.100 Duration: 00:00:00.32, start: 0.000000, bitrate: 43031 kb/s Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p10le, 320x240, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 1k tbn, 1k tbc (default) Metadata: ENCODER : Lavc58.90.100 v210 DURATION : 00:00:00.320000000 Stream mapping: Stream #0:0 -> #0:0 (v210 (native) -> av1 (libaom-av1)) Press [q] to stop, [?] for help [libaom-av1 @ 0x5620559e0600] v2.0.0 Output #0, matroska, to '8fr_av1.mkv': Metadata: encoder : Lavf58.44.100 Stream #0:0: Video: av1 (libaom-av1) (AV01 / 0x31305641), yuv422p10le, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 1k tbn, 25 tbc (default) Metadata: DURATION : 00:00:00.320000000 encoder : Lavc58.90.100 libaom-av1 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 8 fps=3.7 q=0.0 Lsize= 29kB time=00:00:00.28 bitrate= 837.3kbits/s speed=0.129x video:28kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.188944% kieranjol@POWERVIRUS:~/ffmpeg_sources/ffmpeg$ ./ffmpeg -i 8fr_av1.mkv -f framemd5 - ffmpeg version N-98060-g1c32d7d Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/home/kieranjol/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/kieranjol/ffmpeg_build/include --extra-ldflags=-L/home/kieranjol/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/kieranjol/bin --enable-libaom libavutil 56. 50.100 / 56. 50.100 libavcodec 58. 90.100 / 58. 90.100 libavformat 58. 44.100 / 58. 44.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 84.100 / 7. 84.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 [libaom-av1 @ 0x558d1646b740] v2.0.0 Input #0, matroska,webm, from '8fr_av1.mkv': Metadata: ENCODER : Lavf58.44.100 Duration: 00:00:00.32, start: 0.000000, bitrate: 735 kb/s Stream #0:0: Video: av1 (Professional), yuv422p10le(tv), 320x240, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 1k tbn, 1k tbc (default) Metadata: ENCODER : Lavc58.90.100 libaom-av1 DURATION : 00:00:00.320000000 [libaom-av1 @ 0x558d16479800] v2.0.0 Stream mapping: Stream #0:0 -> #0:0 (av1 (libaom-av1) -> rawvideo (native)) Press [q] to stop, [?] for help #format: frame checksums #version: 2 #hash: MD5 #software: Lavf58.44.100 #tb 0: 1/25 #media_type 0: video #codec_id 0: rawvideo #dimensions 0: 320x240 #sar 0: 1/1 #stream#, dts, pts, duration, size, hash Output #0, framemd5, to 'pipe:': Metadata: encoder : Lavf58.44.100 Stream #0:0: Video: rawvideo (Y3[10][10] / 0xA0A3359), yuv422p10le, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 38400 kb/s, 25 fps, 25 tbn, 25 tbc (default) Metadata: DURATION : 00:00:00.320000000 encoder : Lavc58.90.100 rawvideo 0, 0, 0, 1, 307200, e790aa300c6bdd6bad6770c6c6346585 0, 1, 1, 1, 307200, 8213a857506c099160fffb2f606f3590 0, 2, 2, 1, 307200, a5e0786c6d9d152c45e2d3a0122c8987 0, 3, 3, 1, 307200, fd93af578482e418d1378f6d9cd94f14 0, 4, 4, 1, 307200, abfca35c7aae65d1dcddee1ce370479f 0, 5, 5, 1, 307200, da151dbf22f7e818344d5efd0cbb6f09 0, 6, 6, 1, 307200, b87bdb747fbd80060f71585e7d2c6ac9 0, 7, 7, 1, 307200, af69163b6455654da3a37cf52cfc4525 frame= 8 fps=0.0 q=-0.0 Lsize= 1kB time=00:00:00.32 bitrate= 21.4kbits/s speed=15.7x video:2400kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown kieranjol@POWERVIRUS:~/ffmpeg_sources/ffmpeg$ ./ffmpeg -f lavfi -i testsrc -c:v v210 -vframes 7 7fr.mkv ffmpeg version N-98060-g1c32d7d Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/home/kieranjol/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/kieranjol/ffmpeg_build/include --extra-ldflags=-L/home/kieranjol/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/kieranjol/bin --enable-libaom libavutil 56. 50.100 / 56. 50.100 libavcodec 58. 90.100 / 58. 90.100 libavformat 58. 44.100 / 58. 44.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 84.100 / 7. 84.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.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 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> v210 (native)) Press [q] to stop, [?] for help Output #0, matroska, to '7fr.mkv': Metadata: encoder : Lavf58.44.100 Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 40960 kb/s, 25 fps, 1k tbn, 25 tbc Metadata: encoder : Lavc58.90.100 v210 frame= 7 fps=0.0 q=-0.0 Lsize= 1471kB time=00:00:00.24 bitrate=49997.4kbits/s speed=37.6x video:1470kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.059258% kieranjol@POWERVIRUS:~/ffmpeg_sources/ffmpeg$ ./ffmpeg -i 7fr.mkv -c:v av1 -crf 0 7fr_av1.mkv ffmpeg version N-98060-g1c32d7d Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/home/kieranjol/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/kieranjol/ffmpeg_build/include --extra-ldflags=-L/home/kieranjol/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/kieranjol/bin --enable-libaom libavutil 56. 50.100 / 56. 50.100 libavcodec 58. 90.100 / 58. 90.100 libavformat 58. 44.100 / 58. 44.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 84.100 / 7. 84.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 Input #0, matroska,webm, from '7fr.mkv': Metadata: ENCODER : Lavf58.44.100 Duration: 00:00:00.28, start: 0.000000, bitrate: 43033 kb/s Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p10le, 320x240, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 1k tbn, 1k tbc (default) Metadata: ENCODER : Lavc58.90.100 v210 DURATION : 00:00:00.280000000 Stream mapping: Stream #0:0 -> #0:0 (v210 (native) -> av1 (libaom-av1)) Press [q] to stop, [?] for help [libaom-av1 @ 0x5613e4bb0600] v2.0.0 Output #0, matroska, to '7fr_av1.mkv': Metadata: encoder : Lavf58.44.100 Stream #0:0: Video: av1 (libaom-av1) (AV01 / 0x31305641), yuv422p10le, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 1k tbn, 25 tbc (default) Metadata: DURATION : 00:00:00.280000000 encoder : Lavc58.90.100 libaom-av1 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 7 fps=4.2 q=0.0 Lsize= 23kB time=00:00:00.24 bitrate= 793.4kbits/s speed=0.143x video:23kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.685054% kieranjol@POWERVIRUS:~/ffmpeg_sources/ffmpeg$ ./ffmpeg -i 7fr_av1.mkv -f framemd5 - ffmpeg version N-98060-g1c32d7d Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/home/kieranjol/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/kieranjol/ffmpeg_build/include --extra-ldflags=-L/home/kieranjol/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/kieranjol/bin --enable-libaom libavutil 56. 50.100 / 56. 50.100 libavcodec 58. 90.100 / 58. 90.100 libavformat 58. 44.100 / 58. 44.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 84.100 / 7. 84.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 [libaom-av1 @ 0x5632da787740] v2.0.0 Input #0, matroska,webm, from '7fr_av1.mkv': Metadata: ENCODER : Lavf58.44.100 Duration: 00:00:00.28, start: 0.000000, bitrate: 682 kb/s Stream #0:0: Video: av1 (Professional), yuv422p10le(tv), 320x240, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 1k tbn, 1k tbc (default) Metadata: ENCODER : Lavc58.90.100 libaom-av1 DURATION : 00:00:00.280000000 [libaom-av1 @ 0x5632da78cf00] v2.0.0 Stream mapping: Stream #0:0 -> #0:0 (av1 (libaom-av1) -> rawvideo (native)) Press [q] to stop, [?] for help #format: frame checksums #version: 2 #hash: MD5 #software: Lavf58.44.100 #tb 0: 1/25 #media_type 0: video #codec_id 0: rawvideo #dimensions 0: 320x240 #sar 0: 1/1 #stream#, dts, pts, duration, size, hash Output #0, framemd5, to 'pipe:': Metadata: encoder : Lavf58.44.100 Stream #0:0: Video: rawvideo (Y3[10][10] / 0xA0A3359), yuv422p10le, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 38400 kb/s, 25 fps, 25 tbn, 25 tbc (default) Metadata: DURATION : 00:00:00.280000000 encoder : Lavc58.90.100 rawvideo 0, 0, 0, 1, 307200, 50b1ae3e77528dcdacfab21761076d2b 0, 1, 1, 1, 307200, 8213a857506c099160fffb2f606f3590 0, 2, 2, 1, 307200, a5e0786c6d9d152c45e2d3a0122c8987 0, 3, 3, 1, 307200, fd93af578482e418d1378f6d9cd94f14 0, 4, 4, 1, 307200, abfca35c7aae65d1dcddee1ce370479f 0, 5, 5, 1, 307200, da151dbf22f7e818344d5efd0cbb6f09 0, 6, 6, 1, 307200, b87bdb747fbd80060f71585e7d2c6ac9 frame= 7 fps=0.0 q=-0.0 Lsize= 1kB time=00:00:00.28 bitrate= 22.1kbits/s speed=15.3x video:2100kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown0b1ae3e77528dcdacfab21761076d2b Best, Kieran O'Leary Irish Film Institute _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".