[FFmpeg-trac] #3524(avcodec:new): FFmpeg MD5 output different with same data

FFmpeg trac at avcodec.org
Thu Apr 3 21:51:57 CEST 2014


#3524: FFmpeg MD5 output different with same data
--------------------------------------+-----------------------------------
             Reporter:  ahthovaikied  |                    Owner:
                 Type:  defect        |                   Status:  new
             Priority:  normal        |                Component:  avcodec
              Version:  git-master    |               Resolution:
             Keywords:  aac           |               Blocked By:
             Blocking:                |  Reproduced by developer:  0
Analyzed by developer:  0             |
--------------------------------------+-----------------------------------

Comment (by ahthovaikied):

 Now that my segfault problem is gone, here is the other half of the
 results:

 Second machine (core i7 3537U), with audio and video:
 {{{
 $ ./ffmpeg -i h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv
 -f md5 -
 ffmpeg version N-62058-gfd2bcfc Copyright (c) 2000-2014 the FFmpeg
 developers
   built on Apr  3 2014 21:19:55 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu2)
   configuration: --enable-gpl --enable-version3 --enable-nonfree
 --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis
 --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-
 libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
 libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-
 libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
   libavutil      52. 71.100 / 52. 71.100
   libavcodec     55. 56.107 / 55. 56.107
   libavformat    55. 36.101 / 55. 36.101
   libavdevice    55. 11.100 / 55. 11.100
   libavfilter     4.  3.100 /  4.  3.100
   libswscale      2.  6.100 /  2.  6.100
   libswresample   0. 18.100 /  0. 18.100
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, matroska,webm, from
 'h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv':
   Metadata:
     title           : Harry Potter 4[Eng-Hindi]Dual.Audio BRRIP
 720p-=[champ_is_here]=-
     encoder         : libebml v1.0.0 + libmatroska v1.0.0
     creation_time   : 2011-01-07 07:42:53
   Duration: 00:00:57.61, start: 0.000000, bitrate: 613 kb/s
     Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x528 [SAR 1:1 DAR
 80:33], 25 fps, 25 tbr, 1k tbn, 47.95 tbc
     Metadata:
       title           : -=[champ_is_here]=-
     Stream #0:1(eng): Audio: aac, 48000 Hz, stereo, fltp
     Metadata:
       title           : -=[champ_is_here]=-
     Stream #0:2(hin): Audio: mp3, 48000 Hz, stereo, s16p, 160 kb/s
     Metadata:
       title           : -=[champ_is_here]=-
 Output #0, md5, to 'pipe:':
   Metadata:
     title           : Harry Potter 4[Eng-Hindi]Dual.Audio BRRIP
 720p-=[champ_is_here]=-
     encoder         : Lavf55.36.101
     Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p,
 1280x528 [SAR 1:1 DAR 80:33], q=2-31, 200 kb/s, 90k tbn, 25 tbc
     Metadata:
       title           : -=[champ_is_here]=-
     Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
     Metadata:
       title           : -=[champ_is_here]=-
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 -> rawvideo)
   Stream #0:1 -> #0:1 (aac -> pcm_s16le)
 Press [q] to stop, [?] for help
 MD5=997b3168ffc48bbd83ae869a43e59232  0kB time=00:00:56.86 bitrate=
 0.0kbits/s
 frame= 1439 fps=403 q=0.0 Lsize=       0kB time=00:00:57.60 bitrate=
 0.0kbits/s
 video:1424610kB audio:11256kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: unknown
 }}}

 Second machine (core i7 3537U), no video:
 {{{
 $ ./ffmpeg -i h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv
 -vn -f md5 -
 ffmpeg version N-62058-gfd2bcfc Copyright (c) 2000-2014 the FFmpeg
 developers
   built on Apr  3 2014 21:19:55 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu2)
   configuration: --enable-gpl --enable-version3 --enable-nonfree
 --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis
 --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-
 libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
 libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-
 libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
   libavutil      52. 71.100 / 52. 71.100
   libavcodec     55. 56.107 / 55. 56.107
   libavformat    55. 36.101 / 55. 36.101
   libavdevice    55. 11.100 / 55. 11.100
   libavfilter     4.  3.100 /  4.  3.100
   libswscale      2.  6.100 /  2.  6.100
   libswresample   0. 18.100 /  0. 18.100
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, matroska,webm, from
 'h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv':
   Metadata:
     title           : Harry Potter 4[Eng-Hindi]Dual.Audio BRRIP
 720p-=[champ_is_here]=-
     encoder         : libebml v1.0.0 + libmatroska v1.0.0
     creation_time   : 2011-01-07 07:42:53
   Duration: 00:00:57.61, start: 0.000000, bitrate: 613 kb/s
     Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x528 [SAR 1:1 DAR
 80:33], 25 fps, 25 tbr, 1k tbn, 47.95 tbc
     Metadata:
       title           : -=[champ_is_here]=-
     Stream #0:1(eng): Audio: aac, 48000 Hz, stereo, fltp
     Metadata:
       title           : -=[champ_is_here]=-
     Stream #0:2(hin): Audio: mp3, 48000 Hz, stereo, s16p, 160 kb/s
     Metadata:
       title           : -=[champ_is_here]=-
 Output #0, md5, to 'pipe:':
   Metadata:
     title           : Harry Potter 4[Eng-Hindi]Dual.Audio BRRIP
 720p-=[champ_is_here]=-
     encoder         : Lavf55.36.101
     Stream #0:0(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
     Metadata:
       title           : -=[champ_is_here]=-
 Stream mapping:
   Stream #0:1 -> #0:0 (aac -> pcm_s16le)
 Press [q] to stop, [?] for help
 MD5=cd7298a49504ca810b8e8e8cdcd417b2
 size=       0kB time=00:00:57.60 bitrate=   0.0kbits/s
 video:0kB audio:11256kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 }}}

 Second machine (core i7 3537U), no audio:
 {{{
 $ ./ffmpeg -i h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv
 -an -f md5 -
 ffmpeg version N-62058-gfd2bcfc Copyright (c) 2000-2014 the FFmpeg
 developers
   built on Apr  3 2014 21:19:55 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu2)
   configuration: --enable-gpl --enable-version3 --enable-nonfree
 --disable-runtime-cpudetect --disable-ffserver --disable-encoder=vorbis
 --disable-encoder=aac --enable-x11grab --enable-libfdk-aac --enable-
 libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
 libopus --enable-librtmp --enable-libtheora --enable-libvorbis --enable-
 libvpx --enable-libx264 --enable-libxvid --disable-debug --cpu=core-avx-i
   libavutil      52. 71.100 / 52. 71.100
   libavcodec     55. 56.107 / 55. 56.107
   libavformat    55. 36.101 / 55. 36.101
   libavdevice    55. 11.100 / 55. 11.100
   libavfilter     4.  3.100 /  4.  3.100
   libswscale      2.  6.100 /  2.  6.100
   libswresample   0. 18.100 /  0. 18.100
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, matroska,webm, from
 'h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter.mkv':
   Metadata:
     title           : Harry Potter 4[Eng-Hindi]Dual.Audio BRRIP
 720p-=[champ_is_here]=-
     encoder         : libebml v1.0.0 + libmatroska v1.0.0
     creation_time   : 2011-01-07 07:42:53
   Duration: 00:00:57.61, start: 0.000000, bitrate: 613 kb/s
     Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x528 [SAR 1:1 DAR
 80:33], 25 fps, 25 tbr, 1k tbn, 47.95 tbc
     Metadata:
       title           : -=[champ_is_here]=-
     Stream #0:1(eng): Audio: aac, 48000 Hz, stereo, fltp
     Metadata:
       title           : -=[champ_is_here]=-
     Stream #0:2(hin): Audio: mp3, 48000 Hz, stereo, s16p, 160 kb/s
     Metadata:
       title           : -=[champ_is_here]=-
 Output #0, md5, to 'pipe:':
   Metadata:
     title           : Harry Potter 4[Eng-Hindi]Dual.Audio BRRIP
 720p-=[champ_is_here]=-
     encoder         : Lavf55.36.101
     Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p,
 1280x528 [SAR 1:1 DAR 80:33], q=2-31, 200 kb/s, 90k tbn, 25 tbc
     Metadata:
       title           : -=[champ_is_here]=-
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 -> rawvideo)
 Press [q] to stop, [?] for help
 MD5=eeb51ec63c5c7db6ce70e9cebe7cb7e6  0kB time=00:00:50.28 bitrate=
 0.0kbits/s
 frame= 1439 fps=418 q=0.0 Lsize=       0kB time=00:00:57.56 bitrate=
 0.0kbits/s
 video:1424610kB audio:0kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: unknown
 }}}

 The MD5 match when ignoring the audio stream. It seems you are right and
 this is a decoding difference in the audio, thank you for pointing me
 this.

 I think you can close this bug then.

 Do you know if there is a way to compute the MD5 of the streams with
 FFmpeg '''before''' decoding? A full file checksum is not an option
 because I need to be able to select only some streams for the calculation.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/3524#comment:8>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list