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
libavformat58. 44.100 / 58. 44.100
libavdevice58. 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.00, 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.32000
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.32000
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
libavformat58. 44.100 / 58. 44.100
libavdevice58. 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.00, 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