Opened 8 years ago
Last modified 8 years ago
#7681 new defect
Ffmpeg segment produces corrupted segments after segment #0 when encoding h264 stream to mp4
| Reported by: | Piotr Kwaśnik | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | undetermined |
| Version: | unspecified | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
How to reproduce:
ffmpeg -report -v 9 -loglevel 99 -i udp://127.0.0.1:6000 -c copy -flags +global_header -f segment -segment_time 10 -segment_format_options movflags=+faststart -reset_timestamps 1 /mnt/sda1/test%d.mp4
ffmpeg version 4.1
built on gcc 7.4.0 (OpenWrt GCC 7.4.0 r9059-6e104c63d6)
I`m trying to save h264 stream with aac audio to .mp4 file without re encoding but only first segment is playable in Windows Media Player and Opera/Firefox. Next segments gives error in WMP, in Firefox there is no sound and there is error in Opera and Chrome, VLS plays it without any problem. First segment (number 0) plays everywhere.
Attachments (3)
Change History (9)
by , 8 years ago
| Attachment: | ffmpeg-20190115-184805.log added |
|---|
by , 8 years ago
Sample file #3 (this file is not playable in WMP and browsers)
comment:1 by , 8 years ago
Is the issue reproducible with current FFmpeg git head?
Is network input required or can you also reproduce the issue with testsrc2?
Please do not attach output files unless specifically asked.
comment:2 by , 8 years ago
Issue was tested on 3.2.12, 3.5.1, 4.0.2 and 4.1 downloaded today. I dont know how can I test it with cuurrent FFmpeg git head ?
Issue is reproduced with testsrc2, even worse because in this case whole segmend are unplayable in WMP ora browsers, only VLC can play it.
comment:3 by , 8 years ago
Where did you download FFmpeg? Current FFmpeg git head is the only supported version.
Please provide the simplified command line including the complete, uncut console output to make this a valid ticket.
follow-up: 5 comment:4 by , 8 years ago
Ffmpeg is downloaded from here:
https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20190116-51978ae-win64-static.zip
Here is output for ffmpeg 4.0.2
C:\ffmpeg-4.0.2-win32-static\bin>ffmpeg.exe -f lavfi -i testsrc2 -c copy -flags
+global_header -f stream_segment -segment_time 100 -segment_format_options movfl
ags=+faststart -reset_timestamps 1 C:\test%d22.mp4
ffmpeg version 4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.1 (GCC) 20180722
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --e
nable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libblur
ay --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enab
le-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-li
bvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --en
able-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enabl
e-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enabl
e-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enab
le-dxva2 --enable-avisynth
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, lavfi, from 'testsrc2':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1
DAR 4:3], 25 tbr, 25 tbn, 25 tbc
[stream_segment,ssegment @ 03867cc0] Opening 'C:\test022.mp4' for writing
Output #0, stream_segment,ssegment, to 'C:\test%d22.mp4':
Metadata:
encoder : Lavf58.12.100
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1
DAR 4:3], q=2-31, 25 tbr, 12800 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame= 1428 fps=0.0 q=-1.0 size=N/A time=00:00:57.08 bitrate=N/A speed= 114x
[mp4 @ 03871ac0] Starting second pass: moving the moov atom to the beginning of
the file
[stream_segment,ssegment @ 03867cc0] Opening 'C:\test122.mp4' for writing
frame= 2502 fps=2179 q=-1.0 size=N/A time=00:01:40.04 bitrate=N/A speed=87.1x
[mp4 @ 03871ac0] Starting second pass: moving the moov atom to the beginning of
the file
frame= 2634 fps=2180 q=-1.0 Lsize=N/A time=00:01:45.32 bitrate=N/A speed=87.2x
video:296325kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxin
g overhead: unknown
Exiting normally, received signal 2.
for ffmpeg 4.1 I can`t user testsrc2:
C:\ffmpeg-4.1-win64-static\bin>ffmpeg.exe -f lavfi -i testsrc2 -c copy -flags +g
lobal_header -f stream_segment -segment_time 100 -segment_format_options movflag
s=+faststart -reset_timestamps 1 C:\test%d22.mp4
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181017
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfi
g --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-lib
freetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amr
wb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --
enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-l
ibwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --
enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --en
able-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --en
able-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --e
nable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enab
le-avisynth
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, lavfi, from 'testsrc2':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1
DAR 4:3], 25 tbr, 25 tbn, 25 tbc
[stream_segment,ssegment @ 0000000000455dc0] Opening 'C:\test022.mp4' for writin
g
[mp4 @ 0000000000412d80] Could not find tag for codec rawvideo in stream #0, cod
ec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invali
d argument
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Last message repeated 1 times
comment:5 by , 8 years ago
Replying to pikwas:
Ffmpeg is downloaded from here:
https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20190116-51978ae-win64-static.zip
But unfortunately this (the only supported version) is not the version you provided console output for.
Please test -f ssegment.
comment:6 by , 8 years ago
I tried with -f ssegment but results are the same.
C:\ffmpeg-4.1-win64-static\bin>ffmpeg.exe -f lavfi -i testsrc2 -c copy -flags +
lobal_header -f ssegment -segment_time 100 -segment_format_options movflags=+fa
tstart -reset_timestamps 1 C:\test%d22.mp4
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181017
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconf
g --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-li
freetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-am
wb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy -
enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-
ibwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 -
enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --e
able-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --e
able-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --
nable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --ena
le-avisynth
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, lavfi, from 'testsrc2':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1
DAR 4:3], 25 tbr, 25 tbn, 25 tbc
[stream_segment,ssegment @ 0000000000385d80] Opening 'C:\test022.mp4' for writi
g
[mp4 @ 0000000000342d40] Could not find tag for codec rawvideo in stream #0, co
ec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Inval
d argument
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Last message repeated 1 times
C:\ffmpeg-4.1-win64-static\bin>



ffmpeg-20190115-184805