Moritz Barsnick wrote:
On Sun, Dec 07, 2014 at 14:15:37 -0800, S Andreason wrote:
Test instructions, sample file names and locations, plus debug output, are uploaded to:
http://seahorseCorral.org/videos/tests/ffmpeg-concat-test-instructions.txt

Waiting for questions? Thank you.

Please include all your text here, so it hasn't disappeared when
someone else searches for this problems months from now.

Anyway:
- I wouldn't touch ffmpeg-0.5 with a 10 foot pole, or trust it as a
  doorstop. Please do your trimming with recent ffmpeg.
- Please include the full command lines (which you did) and the
  complete, uncut console output. This helps to rule out outdated or
  misconfigured ffmpeg versions, and to see any warnings or errors you
  may have overlooked.
- Finally, I'm not sure whether or how thew trimming with "-ss 15 -t 9"
  and reassembling works with "-c copy", because of I/P/B frames. That
  said, it shouldn't lead to un-concat-able files.

Thanks,
Moritz


Never-the-less, trying to concat certain files that appear whole and intact with all I/P/B frames, does cause a couple problems, with several files, about 10% of the ones I tested.

All my text. Yes sir. Please trim your replies when replying to emails containing 1Mb of text. I could not in good conscious send all 3 files in full debug output by email. ;-)

From the top, my text file in short says:
The trimmed input files *_t* were created with a stable and proven script during the years the newest then ffmpeg did not work well for me. They may have no future relevance, but since almost all my videos in archive are trimmed, they do provide a test case for whatever bug I'm reporting in tests #1 and 2.

I'm using this file instead of actual loop-recording 3-minute "3:01 minus 1 sec" files to keep it simple and presentable. Description for this video: I had the cows all rounded up, but these 4 loose horses came running down the hill and scattered the herd.

Trimming henceforth will be done with newer ffmpeg like this:
ffmpeg -i 20141107_4horses-scatter-cows_mini1355.mov -ss 13 -t 3 -c copy 20141107_4horses-scatter-cows_mini1355_c13-3.mov

The resulting trims or clips seem correct in the number of frames and seconds in length. The only difference I could detect from the older method was the length of the audio stream by a fraction of a second.

Test #1, concat of two trimmed files results in loss of 2 frames at end of first file
# Contents of file: concat-list1.txt The following 2 lines.
file '20141107_4horses-scatter-cows_mini1355_t2-13.mov'
file '20141107_4horses-scatter-cows_mini1355_t15-9.mov'

> ffmpeg -f concat -i concat-list1.txt -c copy 20141107_test1-loses2frames.mov

Test #2, concat of one trimmed file and original file results in video freezing up, appears to be a video or audio mis-match.
# concat-list2.txt
file '20141107_4horses-scatter-cows_mini1355_t2-13.mov'
file '20141107_4horses-scatter-cows_mini1355.mov'

> ffmpeg -f concat -i concat-list2.txt -c copy 20141107_test2-freezes.mov

Test #3, concat of clipped and original results in many errors, wrong time length, and video freezing up interspersed with stopped audio
# concat-list3.txt
file '20141107_4horses-scatter-cows_mini1355_c13-3.mov'
file '20141107_4horses-scatter-cows_mini1355.mov'

> ffmpeg -f concat -i concat-list3.txt -c copy 20141107_test3-fails.mov

The input files used for these tests, can be found at:
http://seahorseCorral.org/videos/tests/20141107_4horses-scatter-cows_mini1355.mov
http://seahorseCorral.org/videos/tests/20141107_4horses-scatter-cows_mini1355_t2-13.mov
http://seahorseCorral.org/videos/tests/20141107_4horses-scatter-cows_mini1355_t15-9.mov
http://seahorseCorral.org/videos/tests/20141107_4horses-scatter-cows_mini1355_c13-3.mov

In depth analysis:
#1. 20141107_test1-loses2frames.mov
notice clock advances 1 second at frame# 30 (of 1-30), and time position advances one frame afterward (frame# 1 or 31,61,91...) at time 0:14, the joint, now the clock in lower left is advancing one frame afterward.
 count only 28 frames from 0:13.0 to 0:13.999

Trying varying time lengths and start positions sometimes results in only 1 frame lost.

#2. 20141107_test2-freezes.mov
plays okay until 0:12.97 when video does not advance to 0:13.00 , audio continues if press right arrow to advance in time, video starts updating again at 4:21 but at slow frame rate so I conclude the problem is possibly in reading the time length of the clips when the concat operation is performed. reaches end at or around 21:11 . If it were being encoded to 1 frame per second, the length should be 27 minutes. Something else then...

#3. 20141107_test3-fails.mov
output has many warnings during ffmpeg command. totals 1620 frames in 54 seconds. correct.
 extracting the audio track afterward, is also correct, 54.000 seconds.
playback is okay until 0:02.99 when video continues at an accelerated rate without any audio, and time position stays stuck at 0:02 after 13 clock seconds, audio starts playback for a couple seconds, then stutters badly with several seconds between audio "bursts" or segments.

On a brighter note, it looks like the clips made with ffmpeg-2.4 and then concat-ed together, are looking good and correct. IMHO, so tests 1 and 2 look like "compatibility issues" with older files or format packaging, and the #3 is a still current bug.

I tried #1 again with .avi as the output extension. 30 frames. No lost frames. So the problem can localized to .mov I think. Trying #2 again with avi plus mov for inputs and avi as output... same result, so looks like the .mov file is the common problem. Re-wrapping the original mov into avi and repeating test #2, did not help. So the wrapper is less the issue, and the h264 stream is the problem, I think.

Tests have now been repeated with newest ffmpeg by git pull and re-compile fresh today with no change.

Output from ffmpeg with -v 9 -loglevel 99 is long, therefore is provided in separate files at:
http://seahorseCorral.org/videos/tests/ffmpeg-concat-test1.log.gz
http://seahorseCorral.org/videos/tests/ffmpeg-concat-test2.log.gz
http://seahorseCorral.org/videos/tests/ffmpeg-concat-test3.log.gz

Debug output for #3 is 913Kb in length before compressing.
Console output for #3 is 262Kb in length, so I'll still have to clip the repeating lines unless you're serious about All my text.

ffmpeg version N-68279-g72c9844 Copyright (c) 2000-2014 the FFmpeg developers
 built on Dec  7 2014 14:41:06 with gcc 4.9.1 (GCC)
configuration: --enable-gpl --enable-libx264 --disable-doc --disable-htmlpages --disable-podpages --disable-ffserver --disable-network --enable-libvpx
 libavutil      54. 15.100 / 54. 15.100
 libavcodec     56. 14.100 / 56. 14.100
 libavformat    56. 15.102 / 56. 15.102
 libavdevice    56.  3.100 / 56.  3.100
 libavfilter     5.  2.103 /  5.  2.103
 libswscale      3.  1.101 /  3.  1.101
 libswresample   1.  1.100 /  1.  1.100
 libpostproc    53.  3.100 / 53.  3.100
Input #0, concat, from 'concat-list3.txt':
 Duration: N/A, start: 0.000000, bitrate: 7965 kb/s
Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720, 7453 kb/s, 30 fps, 30 tbr, 19200 tbn, 38400 tbc Stream #0:1: Audio: pcm_s16le (sowt / 0x74776F73), 32000 Hz, mono, s16, 512 kb/s
Output #0, mov, to '20141107_test3-fails.mov':
 Metadata:
   encoder         : Lavf56.15.102
Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p, 1280x720, q=2-31, 7453 kb/s, 30 fps, 19200 tbn, 19200 tbc Stream #0:1: Audio: pcm_s16le (sowt / 0x74776F73), 32000 Hz, mono, 512 kb/s
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[concat @ 0x9547a00] DTS 1800 < 56960 out of order
[mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 56960, current: 1800; changing to 56961. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 56961, current: 1820; changing to 56962. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 56962, current: 1840; changing to 56963. This may result in incorrect timestamps in the output file.
...clipping 1010 lines...
[mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 57973, current: 22060; changing to 57974. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 57974, current: 22080; changing to 57975. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 57975, current: 22100; changing to 57976. This may result in incorrect timestamps in the output file. frame= 1106 fps=0.0 q=-1.0 size= 37568kB time=00:00:36.00 bitrate=8548.8kbits/s [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 57976, current: 22120; changing to 57977. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 57977, current: 22140; changing to 57978. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 57978, current: 22160; changing to 57979. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 57979, current: 22180; changing to 57980. This may result in incorrect timestamps in the output file.
...clipping 507 lines...
[mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 58487, current: 32340; changing to 58488. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 58488, current: 32360; changing to 58489. This may result in incorrect timestamps in the output file. [mov @ 0x95522c0] Non-monotonous DTS in output stream 0:0; previous: 58489, current: 32380; changing to 58490. This may result in incorrect timestamps in the output file. frame= 1620 fps=0.0 q=-1.0 Lsize= 52637kB time=00:00:54.00 bitrate=7985.2kbits/s video:49252kB audio:3375kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.018508%

I found One interesting warning, only in the debug version for #3
[mov @ 0x95522c0] timecode: tbc=19200/1 invalid, fallback on 30/1

Stewart

_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Reply via email to