#9030 closed defect (worksforme)
-ss with codec copy corrupts output
| Reported by: | Balint Laczko | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | undetermined |
| Version: | git-master | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
The fast -ss tool with -codec copy seems to produce videos with incorrect metadata(?). The cuts sometimes cause video players (tested on VLC and win10 Movies & TV) to get confused, and start to playback the video from the "beginning" (of the input file) with a black screen of just a frozen frame (which is the frame at the -ss timepoint). Meanwhile sound plays back as if it was not cut at all. What is even more confusing that the behavior of this problem is inconsistent, some timepoints (typically the ones further from 0:00 in the input) are okay, some produce the incorrect black screens/glitches (see an example here: https://github.com/fourMs/MGT-python/issues/168). In some cases the metadata doesn't even get changed and the output claims to have the same number of frames and length as the input. The problem seems to be related to the mp4 container(?). It happens all the time with my test mp4 file, but if I first convert it to an avi and try to trim that the problem never happens. If I take the converted avi video, convert it back to mp4, and try to trim that with -ss and -codec copy, the problem reappears.
How to reproduce:
% ffmpeg -i input.mp4 -ss 5 -t 5 -codec copy output.mp4 ffmpeg version ffmpeg-2020-12-12-git-5148740e79-full_build built on windows
Attachments (3)
Change History (12)
by , 6 years ago
| Attachment: | problem.mp4 added |
|---|
comment:1 by , 6 years ago
| Component: | ffmpeg → undetermined |
|---|---|
| Keywords: | -ss codec copy glitch removed |
| Priority: | critical → normal |
This has currently no similarities with a valid ticket.
Please provide the input (!) sample you used and post the command line you tested together with the complete, uncut console output here in the ticket to make it valid.
(Please do not attach output files unless specifically asked.)
comment:2 by , 6 years ago
> ffmpeg -i dance.mp4 -ss 5 -t 5 -codec copy out.mp4
ffmpeg version 2020-12-12-git-5148740e79-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 56. 62.100 / 56. 62.100
libavcodec 58.115.102 / 58.115.102
libavformat 58. 65.100 / 58. 65.100
libavdevice 58. 11.103 / 58. 11.103
libavfilter 7. 93.100 / 7. 93.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dance.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Duration: 00:00:10.05, start: 0.000000, bitrate: 1066 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 1920x1080 [SAR 1:1 DAR 16:9], 923 kb/s, 59.94 fps, 59.94 tbr, 19001 tbn, 119.88 tbc (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 129 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Output #0, mp4, to 'out.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.65.100
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 923 kb/s, 59.94 fps, 59.94 tbr, 19001 tbn, 19001 tbc (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 129 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 102 fps=0.0 q=-1.0 Lsize= 267kB time=00:00:04.99 bitrate= 437.5kbits/s speed=2.16e+03x
video:184kB audio:78kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.779118%
comment:3 by , 6 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | new → closed |
Why do you believe that there is something wrong with the output file?
You requested a file that starts with an I-frame, begins exactly five seconds into the input file and is five seconds long. It appears to me this is exactly what you got.
follow-up: 5 comment:4 by , 6 years ago
Thank you for your quick response! Can you upload your output so I can check if I experience the same issue on my end? I also uploaded my output earlier (problem.mp4), and you can see screenshots from the glitch (played back in VLC) here: https://github.com/fourMs/MGT-python/issues/168
Is your platform also Windows? Could it be a platform-specific issue?
comment:5 by , 6 years ago
Replying to balintlaczko:
Is your platform also Windows? Could it be a platform-specific issue?
You misunderstand: I am not saying that I get different output than you, I tried to explain that what you got is what you asked for.
follow-up: 7 comment:6 by , 6 years ago
I see. I have been using the same process for ages without this kind of issue before, that is why I thought this time that this is not normal. Do you have a suggestion then how to avoid the problem?
comment:7 by , 6 years ago
Replying to balintlaczko:
I see. I have been using the same process for ages without this kind of issue before
That sounds unlikely / you probably missed the issue before.
that is why I thought this time that this is not normal. Do you have a suggestion then how to avoid the problem?
You cannot avoid it for the given input file and the given start point if you don't re-encode (although feel free to test with -copyinkf).
comment:9 by , 6 years ago
That sounds unlikely / you probably missed the issue before
Okay, thanks for the assumption. :-)
Nevermind the problem, it's "normal". OK!



this is the result of
ffmpeg -i dance.mp4 -ss 5 -t 5 -codec copy problem.mp4