0

I use this command for stripping metadata:

ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4

Sometimes it works fine but occasionally the result is as

+----------------+----------------+
| Original video | Original video |
+----------------+----------------+
| Original sound |    No sound    |
+----------------+----------------+ 

I saved one output of such unsuccessful stripping:  

ffmpeg -i ridiculousjump.mp4 -map_metadata -1 -c copy ridiculousjumpnomet.mp4
ffmpeg version N-85750-ga75ef15 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nv
enc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libblur
ay --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-
libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-lib
rtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amr
wbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enabl
e-libxvid --enable-libzimg --enable-lzma --enable-zlib
  libavutil      55. 61.100 / 55. 61.100
  libavcodec     57. 93.100 / 57. 93.100
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 88.100 /  6. 88.100
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ridiculousjump.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2016-09-28T00:49:17.000000Z
    encoder         : mp4creator 1.6.1d
  Duration: 00:00:26.56, start: 0.000000, bitrate: 822 kb/s
    Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 636x396 [SAR 1:1 DAR 53:33], 694 kb/s, 25 fps, 25
 tbr, 90k tbn, 50 tbc (default)
    Metadata:
      creation_time   : 2016-09-28T00:49:17.000000Z
      encoder         : VC Coding
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      creation_time   : 2016-09-28T00:49:17.000000Z
Output #0, mp4, to 'ridiculousjumpnomet.mp4':
  Metadata:
    encoder         : Lavf57.72.101
    Stream #0:0: Video: h264 (Constrained Baseline) ([33][0][0][0] / 0x0021), yuv420p, 636x396 [SAR 1:1 DAR 53:33], q=2-31, 694 kb/s, 25
 fps, 25 tbr, 90k tbn, 90k tbc (default)
    Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 125 kb/s (default)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 1328 fps=0.0 q=-1.0 Lsize=    4929kB time=00:00:53.08 bitrate= 760.8kbits/s speed= 915x
video:4504kB audio:405kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.416591%

(I'm currently not able to find that input video but I will post it as soon as I will find it — or similar one.)

Had someone a similar experience or knows where is or may be the problem?

EDIT

I found a video with the same problem, only 430 KiB: Bubble_burst.mp4.

2
  • Is the video interlaced? – Gyan Aug 16 '17 at 14:21
  • No, the input video is progressive but it is created by the previous transcoding from an interlaced video (very probably by Any Video Converter Free 3.5.8). – MarianD Aug 16 '17 at 14:48
0

This is the Gyan's solution, and it works:

ffmpeg -ignore_editlist 1 -i input.mp4 -map_metadata -1 -c copy output.mp4

The important part here is the -ignore_editlist 1 option (yet undocumented).


The reason is that the original video contains for its video stream an edit list (elst box) with entryCount value set to 2 (which is ignored by some media players — but not by FFmpeg, which interprets it as repeating the video stream twice).

The Gyan's explanation (see ticket #8456):

The video stream in this file has an edit list that says that the video should be displayed twice. So actually looping the video is the correct behavior. But I think the file is actually invalid, as the duration of the track in the tkhd and the mdhd box both shows 6s, although it is double that after applying the edit list.


Note: I tried several videos converted by Any Video Converter into the H.264 format (as input files), and the same problem occurred with most of them.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.