[FFmpeg-user] moov atom way too big + udta added

Mayescid Ocomance MayescidOcomance at gmail.com
Mon Jun 17 12:09:02 EEST 2019


Hi Carl, hi erveryone,

>> The file is fine, however, when I compare its structure using
AtomicParsley
>> to a file with the same specifics but created by another programm, I'm
>> getting way too big moov atoms, which seems to be caused by way too big
>> stscm, stszm, stco, (and ctts for audio) atoms in both streams.

>How do you define "too big"?

The files themselves are fine and work well. However, the basically same
files are created by another programm with up to 5 times smaller moov atoms.
The bigger moov atoms don't seem to add any advantage so their size seems
to be redundantly big.
Either I need help spotting the advantages or I'd like some help reducing
the moov atom size in order to save data space.
My best guess so far is that it's a matter of sample sizes.

This is the ffprobe output of both files, first ffmpeg encoded and second
by a different programm:

C:\FFMPEG\bin\ffprobe.exe : ffprobe version N-90399-ged0e0fe102 Copyright
(c) 2007-2018 the FFmpeg developers
In C:\Users\zraab01\Power Shell Easy
Scripts\FFprobe_FFEnc_frames_select.ps1:28 Zeichen:9
+         C:\FFMPEG\bin\ffprobe.exe  -i $_.FullName  2>&1 | Out-File  \ ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (ffprobe version...mpeg
developers:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

  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-libmfx
--enable-amf --enable-ffnvcodec --enable-cuvid
--enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2
--enable-avisynth
  libavutil      56. 11.100 / 56. 11.100
  libavcodec     58. 15.100 / 58. 15.100
  libavformat    58. 10.100 / 58. 10.100
  libavdevice    58.  2.100 / 58.  2.100
  libavfilter     7. 13.100 /  7. 13.100
  libswscale      5.  0.102 /  5.  0.102
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'INPUTFILE:
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.23.100
  Duration: 00:02:14.36, start: 0.000000, bitrate: 2051 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p,
1280x720 [SAR 1:1 DAR 16:9], 1915 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc
(default)
    Metadata:
      handler_name    : Video Media Handler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
stereo, fltp, 130 kb/s (default)
    Metadata:
      handler_name    : Sound Media Handler



C:\FFMPEG\bin\ffprobe.exe : ffprobe version N-90399-ged0e0fe102 Copyright
(c) 2007-2018 the FFmpeg developers
In C:\Users\zraab01\Power Shell Easy
Scripts\FFprobe_FFEnc_frames_select.ps1:28 Zeichen:9
+         C:\FFMPEG\bin\ffprobe.exe  -i $_.FullName  2>&1 | Out-File  \ ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (ffprobe version...mpeg
developers:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

  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-libmfx
--enable-amf --enable-ffnvcodec --enable-cuvid
--enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2
--enable-avisynth
  libavutil      56. 11.100 / 56. 11.100
  libavcodec     58. 15.100 / 58. 15.100
  libavformat    58. 10.100 / 58. 10.100
  libavdevice    58.  2.100 / 58.  2.100
  libavfilter     7. 13.100 /  7. 13.100
  libswscale      5.  0.102 /  5.  0.102
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SAMEbutDifferentINPUTFILE':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2019-06-07T07:24:32.000000Z
  Duration: 00:02:14.29, start: 0.000000, bitrate: 2130 kb/s
    Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
stereo, fltp, 125 kb/s (default)
    Metadata:
      creation_time   : 2019-06-07T07:24:32.000000Z
      handler_name    : Mainconcept MP4 Sound Media Handler
    Stream #0:1(eng): Video: h264 (Baseline) (avc1 / 0x31637661),
yuv420p(tv), 1280x720 [SAR 1024:1024 DAR 16:9], 2000 kb/s, 24.98 fps, 25
tbr, 25k tbn, 50 tbc (default)
    Metadata:
      creation_time   : 2019-06-07T07:24:33.000000Z
      handler_name    : Mainconcept MP4 Video Media Handler
      encoder         : AVC Coding



If you'd like to see the streams or packets info, please let me know.


Thanks!
Mayescid


Am Fr., 7. Juni 2019 um 15:31 Uhr schrieb Carl Eugen Hoyos <
ceffmpeg at gmail.com>:

> Am Fr., 7. Juni 2019 um 11:46 Uhr schrieb Mayescid Ocomance
> <MayescidOcomance at gmail.com>:
>
> > I'm creating serveral mp4 derivatives of other mp4s and m2ts using
> ffmpeg.
> > It's an automated process. So far I have used this command line for one
> of
> > the derivaties:
> >
> > -s 1280x720  -c:v libx264 -profile:v main -crf 10 -maxrate 2M -bufsize 2M
> > -c:a aac -ac 2 -b:a 128k -ar 44100 -f mp4 -movflags +faststart
> >
> >
> > The file is fine, however, when I compare its structure using
> AtomicParsley
> > to a file with the same specifics but created by another programm, I'm
> > getting way too big moov atoms, which seems to be caused by way too big
> > stscm, stszm, stco, (and ctts for audio) atoms in both streams.
>
> How do you define "too big"?
>
> > (Keep in mind this is just a 2-3 minute video. The difference is even
> 4-5x
> > when encoding 1-2h videos).
> >
> > Does anyone have an idea, what I could change to reduce the moov atom
> file ?
> > So far I have tried forcing keyframe intervals, bigger GOPs, disabling
> > metadata, maping chapters differenty, alas without any or only teeny tiny
> > progress in moov reduction.
>
> > (and any idea how to get rid of the udta that is not part of the original
> > input and seemingly is generated by ffmpeg by default ?!)
>
> It is always written.
>
> Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-user mailing list