[FFmpeg-user] clipping bug on h264 files made by ffmpeg same version

S Andreason sandreas41 at gmail.com
Wed Feb 4 20:58:15 CET 2015


I didn't get any reply to my Jan22 report, so I'm sending this again 
with working examples, and freshly compiled ffmpeg code:

After starting with a raw camera file, after I process it by resizing
and/or cropping etc, using the h264 codec, When I later try to use that
output file as an input file for further processing, (like to trim
the length and starting time) it gives an error and drops the video 
stream, or it gets the video way out of sync.
Looks like the same bug, with different starting times specified.

I suspect a problem with tbc and tbn, watch the beginning and ending values.
Step 1, resize only:

 > ffmpeg -v 9 -loglevel 99 -i 20150204_1037_beaverDam7_rec_5472.MOV 
-c:v h264 -s 640x360 -c:a copy 
20150204_1037_beaverDam7_rec_5472-360p.mov >& ffmpeg-5472-test1.log

ffmpeg version N-69557-gb119945 Copyright (c) 2000-2015 the FFmpeg 
developers
   built with gcc 4.9.1 (GCC)
   configuration: --enable-gpl --enable-libx264 --disable-doc 
--disable-htmlpages --disable-podpages --disable-ffserver 
--disable-network --enable-libfreetype --enable-libfontconfig 
--enable-shared
   libavutil      54. 18.100 / 54. 18.100
   libavcodec     56. 21.102 / 56. 21.102
   libavformat    56. 19.100 / 56. 19.100
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5.  9.103 /  5.  9.103
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  1.100 /  1.  1.100
   libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with 
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging 
level) with argument '99'.
Reading option '-i' ... matched as input file with argument 
'20150204_1037_beaverDam7_rec_5472.MOV'.
Reading option '-c:v' ... matched as option 'c' (codec name) with 
argument 'h264'.
Reading option '-s' ... matched as option 's' (set frame size (WxH or 
abbreviation)) with argument '640x360'.
Reading option '-c:a' ... matched as option 'c' (codec name) with 
argument 'copy'.
Reading option '20150204_1037_beaverDam7_rec_5472-360p.mov' ... matched 
as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input file 
20150204_1037_beaverDam7_rec_5472.MOV.
Successfully parsed a group of options.
Opening an input file: 20150204_1037_beaverDam7_rec_5472.MOV.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] Format mov,mp4,m4a,3gp,3g2,mj2 
probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] Before avformat_find_stream_info() 
pos: 55287099 bytes read:73011 seeks:2
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] After avformat_find_stream_info() 
pos: 2656256 bytes read:2466043 seeks:4 frames:31
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 
'20150204_1037_beaverDam7_rec_5472.MOV':
   Metadata:
     major_brand     : qt
     minor_version   : 0
     compatible_brands: qt
     creation_time   : 2015-02-04 10:37:32
     original_format : DVR-CD
     original_format-eng: DVR-CD
     comment         : HDDVR-Mobius
     comment-eng     : HDDVR-Mobius
   Duration: 00:00:24.00, start: 0.000000, bitrate: 18429 kb/s
     Stream #0:0(eng), 30, 1/30000: Video: h264 (High) (avc1 / 
0x31637661), yuv420p(left), 1920x1080 (1920x1088), 1/60000, 17662 kb/s, 
30 fps, 30 tbr, 30k tbn, 60k tbc (default)
     Metadata:
       creation_time   : 2015-02-04 10:37:32
       handler_name    : DataHandler
       encoder         : h264
     Stream #0:1(eng), 1, 1/32000: Audio: pcm_s16le (sowt / 0x74776F73), 
32000 Hz, 1 channels, s16, 512 kb/s (default)
     Metadata:
       creation_time   : 2015-02-04 10:37:32
       handler_name    : DataHandler
Successfully opened the file.
Parsing a group of options: output file 
20150204_1037_beaverDam7_rec_5472-360p.mov.
Applying option c:v (codec name) with argument h264.
Applying option s (set frame size (WxH or abbreviation)) with argument 
640x360.
Applying option c:a (codec name) with argument copy.
Successfully parsed a group of options.
Opening an output file: 20150204_1037_beaverDam7_rec_5472-360p.mov.
Matched encoder 'libx264' for codec 'h264'.
Successfully opened the file.
detected 1 logical cores
[graph 0 input from stream 0:0 @ 0x8087400] Setting 'video_size' to 
value '1920x1080'
[graph 0 input from stream 0:0 @ 0x8087400] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:0 @ 0x8087400] Setting 'time_base' to value 
'1/30000'
[graph 0 input from stream 0:0 @ 0x8087400] Setting 'pixel_aspect' to 
value '0/1'
[graph 0 input from stream 0:0 @ 0x8087400] Setting 'sws_param' to value 
'flags=2'
[graph 0 input from stream 0:0 @ 0x8087400] Setting 'frame_rate' to 
value '30/1'
[graph 0 input from stream 0:0 @ 0x8087400] w:1920 h:1080 pixfmt:yuv420p 
tb:1/30000 fr:30/1 sar:0/1 sws_param:flags=2
[scaler for output stream 0:0 @ 0x8086fe0] Setting 'w' to value '640'
[scaler for output stream 0:0 @ 0x8086fe0] Setting 'h' to value '360'
[scaler for output stream 0:0 @ 0x8086fe0] Setting 'flags' to value '0x4'
[scaler for output stream 0:0 @ 0x8086fe0] w:640 h:360 flags:'0x4' interl:0
[format @ 0x808eb80] compat: called with 
args=[yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16]
[format @ 0x808eb80] Setting 'pix_fmts' to value 
'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16'
[AVFilterGraph @ 0x81b75a0] query_formats: 5 queried, 4 merged, 0 
already done, 0 delayed
[scaler for output stream 0:0 @ 0x8086fe0] w:1920 h:1080 fmt:yuv420p 
sar:0/1 -> w:640 h:360 fmt:yuv420p sar:0/1 flags:0x4
[libx264 @ 0x80a7360] using cpu capabilities: MMX2 SSE SlowCTZ
[libx264 @ 0x80a7360] profile High, level 3.0
[libx264 @ 0x80a7360] 264 - core 142 r2479 dd79a61 - H.264/MPEG-4 AVC 
codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - 
options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 
psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 
8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 
lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf 
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 
aq=1:1.00
Output #0, mov, to '20150204_1037_beaverDam7_rec_5472-360p.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 0
     compatible_brands: qt
     comment-eng     : HDDVR-Mobius
     original_format : DVR-CD
     original_format-eng: DVR-CD
     comment         : HDDVR-Mobius
     encoder         : Lavf56.19.100
     Stream #0:0(eng), 0, 1/15360: Video: h264 (libx264) (avc1 / 
0x31637661), yuv420p(left), 640x360, 1/30, q=-1--1, 30 fps, 15360 tbn, 
30 tbc (default)
     Metadata:
       creation_time   : 2015-02-04 10:37:32
       handler_name    : DataHandler
       encoder         : Lavc56.21.102 libx264
     Stream #0:1(eng), 0, 1/32000: Audio: pcm_s16le (sowt / 0x74776F73), 
32000 Hz, mono, 512 kb/s (default)
     Metadata:
       creation_time   : 2015-02-04 10:37:32
       handler_name    : DataHandler
Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
   Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
Cliping frame in rate conversion by 0.000008
frame=    7 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A 
    frame=   18 fps= 17 q=0.0 size=       0kB time=00:00:00.00 
bitrate=N/A     frame=   29 fps= 18 q=0.0 size=       0kB 
time=00:00:00.00 bitrate=N/A     frame=   38 fps= 18 q=0.0 size= 
0kB time=00:00:01.00 bitrate=   0.3kbits/s     [libx264 @ 0x80a7360] 
frame=   0 QP=24.25 NAL=3 Slice:I Poc:0   I:920  P:0    SKIP:0 
size=23082 bytes
[libx264 @ 0x80a7360] frame=   1 QP=24.49 NAL=2 Slice:P Poc:6   I:30 
P:716  SKIP:174  size=7996 bytes
frame=   43 fps= 15 q=29.0 size=      31kB time=00:00:01.00 bitrate= 
254.4kbits/s     [libx264 @ 0x80a7360] frame=   2 QP=29.63 NAL=2 Slice:B 
Poc:4   I:0    P:513  SKIP:385  size=1381 bytes
[libx264 @ 0x80a7360] frame=   3 QP=27.53 NAL=0 Slice:B Poc:2   I:2 
P:556  SKIP:340  size=1388 bytes
[libx264 @ 0x80a7360] frame=   4 QP=23.87 NAL=2 Slice:P Poc:10  I:23 
P:756  SKIP:141  size=7939 bytes
[libx264 @ 0x80a7360] frame=   5 QP=27.40 NAL=0 Slice:B Poc:8   I:0 
P:534  SKIP:375  size=1325 bytes
frame=   47 fps= 14 q=29.0 size=      51kB time=00:00:01.00 bitrate= 
416.2kbits/s     [libx264 @ 0x80a7360] frame=   6 QP=23.42 NAL=2 Slice:P 
Poc:16  I:106  P:718  SKIP:96   size=8376 bytes

[clipping 90kb of repetitive output]

[libx264 @ 0x80a7360] frame= 701 QP=24.37 NAL=2 Slice:P Poc:404 I:64 
P:738  SKIP:118  size=8160 bytes
[libx264 @ 0x80a7360] frame= 702 QP=28.40 NAL=0 Slice:B Poc:402 I:2 
P:538  SKIP:331  size=1928 bytes
[libx264 @ 0x80a7360] frame= 703 QP=24.95 NAL=2 Slice:P Poc:408 I:46 
P:725  SKIP:149  size=7953 bytes
[libx264 @ 0x80a7360] frame= 704 QP=28.40 NAL=0 Slice:B Poc:406 I:2 
P:553  SKIP:318  size=2154 bytes
[libx264 @ 0x80a7360] frame= 705 QP=24.47 NAL=2 Slice:P Poc:412 I:100 
P:761  SKIP:59   size=8848 bytes
[libx264 @ 0x80a7360] frame= 706 QP=27.87 NAL=0 Slice:B Poc:410 I:5 
P:523  SKIP:339  size=2377 bytes
[libx264 @ 0x80a7360] frame= 707 QP=24.59 NAL=2 Slice:P Poc:416 I:62 
P:726  SKIP:132  size=8050 bytes
[libx264 @ 0x80a7360] frame= 708 QP=28.71 NAL=0 Slice:B Poc:414 I:1 
P:542  SKIP:326  size=2370 bytes
[libx264 @ 0x80a7360] frame= 709 QP=24.62 NAL=2 Slice:P Poc:420 I:56 
P:730  SKIP:134  size=8032 bytes
[libx264 @ 0x80a7360] frame= 710 QP=29.40 NAL=0 Slice:B Poc:418 I:0 
P:486  SKIP:378  size=2372 bytes
[libx264 @ 0x80a7360] frame= 711 QP=25.18 NAL=2 Slice:P Poc:424 I:70 
P:673  SKIP:177  size=7714 bytes
[libx264 @ 0x80a7360] frame= 712 QP=27.69 NAL=0 Slice:B Poc:422 I:1 
P:567  SKIP:315  size=2508 bytes
[libx264 @ 0x80a7360] frame= 713 QP=25.53 NAL=2 Slice:P Poc:428 I:70 
P:701  SKIP:149  size=7330 bytes
[libx264 @ 0x80a7360] frame= 714 QP=28.75 NAL=0 Slice:B Poc:426 I:3 
P:552  SKIP:319  size=2641 bytes
[libx264 @ 0x80a7360] frame= 715 QP=25.45 NAL=2 Slice:P Poc:432 I:133 
P:685  SKIP:102  size=7491 bytes
[libx264 @ 0x80a7360] frame= 716 QP=27.71 NAL=0 Slice:B Poc:430 I:5 
P:533  SKIP:334  size=2485 bytes
[libx264 @ 0x80a7360] frame= 717 QP=26.73 NAL=2 Slice:P Poc:436 I:85 
P:644  SKIP:191  size=6014 bytes
[libx264 @ 0x80a7360] frame= 718 QP=28.64 NAL=0 Slice:B Poc:434 I:4 
P:553  SKIP:324  size=2544 bytes
[libx264 @ 0x80a7360] frame= 719 QP=28.73 NAL=2 Slice:P Poc:438 I:36 
P:526  SKIP:358  size=3531 bytes
frame=  720 fps=5.8 q=29.0 Lsize=    6582kB time=00:00:24.00 
bitrate=2246.8kbits/s
video:5066kB audio:1500kB subtitle:0kB other streams:0kB global 
headers:0kB muxing overhead: 0.249506%
Input file #0 (20150204_1037_beaverDam7_rec_5472.MOV):
   Input stream #0:0 (video): 720 packets read (52986380 bytes); 720 
frames decoded;
   Input stream #0:1 (audio): 768 packets read (1536000 bytes);
   Total: 1488 packets (54522380 bytes) demuxed
Output file #0 (20150204_1037_beaverDam7_rec_5472-360p.mov):
   Output stream #0:0 (video): 720 frames encoded; 720 packets muxed 
(5187678 bytes);
   Output stream #0:1 (audio): 768 packets muxed (1536000 bytes);
   Total: 1488 packets (6723678 bytes) muxed
720 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x80a9c20] Statistics: 64 seeks, 1539 writeouts
[libx264 @ 0x80a7360] frame I:3     Avg QP:23.41  size: 32721
[libx264 @ 0x80a7360] frame P:379   Avg QP:25.40  size: 11296
[libx264 @ 0x80a7360] frame B:338   Avg QP:29.00  size:  2390
[libx264 @ 0x80a7360] consecutive B-frames: 10.1% 77.8% 12.1%  0.0%
[libx264 @ 0x80a7360] mb I  I16..4:  5.7% 50.0% 44.3%
[libx264 @ 0x80a7360] mb P  I16..4:  1.8%  4.7%  1.8%  P16..4: 36.2% 
27.3% 18.8%  0.0%  0.0%    skip: 9.5%
[libx264 @ 0x80a7360] mb B  I16..4:  0.1%  0.2%  0.1%  B16..8: 49.6% 
10.5%  3.5%  direct: 2.5%  skip:33.5%  L0:33.0% L1:54.8% BI:12.2%
[libx264 @ 0x80a7360] 8x8 transform intra:56.1% inter:48.3%
[libx264 @ 0x80a7360] coded y,uvDC,uvAC intra: 55.2% 21.5% 1.1% inter: 
28.2% 6.3% 0.0%
[libx264 @ 0x80a7360] i16 v,h,dc,p: 29% 27% 18% 26%
[libx264 @ 0x80a7360] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 12% 36%  4%  7% 
  6%  6%  5%  5%
[libx264 @ 0x80a7360] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21%  9% 23%  8%  9% 
  8%  7%  8%  7%
[libx264 @ 0x80a7360] i8c dc,h,v,p: 76% 12% 11%  1%
[libx264 @ 0x80a7360] Weighted P-Frames: Y:11.3% UV:0.3%
[libx264 @ 0x80a7360] ref P L0: 71.2% 20.2%  6.3%  2.2%  0.1%
[libx264 @ 0x80a7360] ref B L0: 95.5%  4.4%  0.1%
[libx264 @ 0x80a7360] ref B L1: 97.6%  2.4%
[libx264 @ 0x80a7360] kb/s:1729.00
[AVIOContext @ 0x808eb00] Statistics: 54633703 bytes read, 26 seeks


Step 2: clip/trim a section of the above file.
 > ffmpeg -v 9 -loglevel 99 -i 
20150204_1037_beaverDam7_rec_5472-360p.mov -ss 12 -t 8 -c copy 
20150204_1037_beaverDam7_rec_5472-360p_c12t8.mov >& ffmpeg-5472-test2.log

ffmpeg version N-69557-gb119945 Copyright (c) 2000-2015 the FFmpeg 
developers
   built with gcc 4.9.1 (GCC)
   configuration: --enable-gpl --enable-libx264 --disable-doc 
--disable-htmlpages --disable-podpages --disable-ffserver 
--disable-network --enable-libfreetype --enable-libfontconfig 
--enable-shared
   libavutil      54. 18.100 / 54. 18.100
   libavcodec     56. 21.102 / 56. 21.102
   libavformat    56. 19.100 / 56. 19.100
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5.  9.103 /  5.  9.103
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  1.100 /  1.  1.100
   libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with 
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging 
level) with argument '99'.
Reading option '-i' ... matched as input file with argument 
'20150204_1037_beaverDam7_rec_5472-360p.mov'.
Reading option '-ss' ... matched as option 'ss' (set the start time 
offset) with argument '12'.
Reading option '-t' ... matched as option 't' (record or transcode 
"duration" seconds of audio/video) with argument '8'.
Reading option '-c' ... matched as option 'c' (codec name) with argument 
'copy'.
Reading option '20150204_1037_beaverDam7_rec_5472-360p_c12t8.mov' ... 
matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input file 
20150204_1037_beaverDam7_rec_5472-360p.mov.
Successfully parsed a group of options.
Opening an input file: 20150204_1037_beaverDam7_rec_5472-360p.mov.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] Format mov,mp4,m4a,3gp,3g2,mj2 
probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] Before avformat_find_stream_info() 
pos: 6740454 bytes read:49507 seeks:1
[h264 @ 0x8097220] no picture
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] After avformat_find_stream_info() 
pos: 35233 bytes read:115043 seeks:2 frames:4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 
'20150204_1037_beaverDam7_rec_5472-360p.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf56.19.100
     comment         : HDDVR-Mobius
     comment-eng     : HDDVR-Mobius
   Duration: 00:00:24.00, start: 0.000000, bitrate: 2246 kb/s
     Stream #0:0(eng), 3, 1/15360: Video: h264 (High) (avc1 / 
0x31637661), yuv420p(left), 640x360 (640x368), 1/60, 1729 kb/s, 30 fps, 
30 tbr, 15360 tbn, 60 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc56.21.102 libx264
     Stream #0:1(eng), 1, 1/32000: Audio: pcm_s16le (sowt / 0x74776F73), 
32000 Hz, mono, s16, 512 kb/s (default)
     Metadata:
       handler_name    : DataHandler
Successfully opened the file.
Parsing a group of options: output file 
20150204_1037_beaverDam7_rec_5472-360p_c12t8.mov.
Applying option ss (set the start time offset) with argument 12.
Applying option t (record or transcode "duration" seconds of 
audio/video) with argument 8.
Applying option c (codec name) with argument copy.
Successfully parsed a group of options.
Opening an output file: 20150204_1037_beaverDam7_rec_5472-360p_c12t8.mov.
Successfully opened the file.
[mov @ 0x816fbe0] timecode: tbc=15360/1 invalid, fallback on 30/1
Output #0, mov, to '20150204_1037_beaverDam7_rec_5472-360p_c12t8.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     comment-eng     : HDDVR-Mobius
     comment         : HDDVR-Mobius
     encoder         : Lavf56.19.100
     Stream #0:0(eng), 0, 1/15360: Video: h264 (avc1 / 0x31637661), 
yuv420p(left), 640x360 (0x0), 1/15360, q=2-31, 1729 kb/s, 30 fps, 30 
tbr, 15360 tbn, 15360 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc56.21.102 libx264
     Stream #0:1(eng), 0, 1/32000: Audio: pcm_s16le (sowt / 0x74776F73), 
32000 Hz, mono, 512 kb/s (default)
     Metadata:
       handler_name    : DataHandler
Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
No more output streams to write to, finishing.
frame=  102 fps=0.0 q=-1.0 Lsize=    1194kB time=00:00:08.00 
bitrate=1222.9kbits/s
video:691kB audio:500kB subtitle:0kB other streams:0kB global 
headers:0kB muxing overhead: 0.294840%
Input file #0 (20150204_1037_beaverDam7_rec_5472-360p.mov):
   Input stream #0:0 (video): 603 packets read (4613823 bytes);
   Input stream #0:1 (audio): 641 packets read (1282048 bytes);
   Total: 1244 packets (5895871 bytes) demuxed
Output file #0 (20150204_1037_beaverDam7_rec_5472-360p_c12t8.mov):
   Output stream #0:0 (video): 102 packets muxed (707304 bytes);
   Output stream #0:1 (audio): 256 packets muxed (512000 bytes);
   Total: 358 packets (1219304 bytes) muxed
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x8099ec0] Statistics: 64 seeks, 408 writeouts
[AVIOContext @ 0x808eb00] Statistics: 5947747 bytes read, 2 seeks


This results in a very out of sync video. The time marker starts at 4 
seconds, or specifically A: 0.0 V: 4.4
and the video only lasts 4 seconds, as the audio and video arrive at 8 
seconds separately. Also the footsteps are clearly out of sync.  The 
video stops while the audio continues to play the correct clip starting 
and ending points.

Since this did not duplicate my earlier report, I adjust the starting 
sec to find how to duplicate it.

 > ffmpeg -v 9 -loglevel 99 -i 
20150204_1037_beaverDam7_rec_5472-360p.mov -ss 3 -t 2 -c copy 
20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov >& ffmpeg-5472-test3.log

ffmpeg version N-69557-gb119945 Copyright (c) 2000-2015 the FFmpeg 
developers
   built with gcc 4.9.1 (GCC)
   configuration: --enable-gpl --enable-libx264 --disable-doc 
--disable-htmlpages --disable-podpages --disable-ffserver 
--disable-network --enable-libfreetype --enable-libfontconfig 
--enable-shared
   libavutil      54. 18.100 / 54. 18.100
   libavcodec     56. 21.102 / 56. 21.102
   libavformat    56. 19.100 / 56. 19.100
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5.  9.103 /  5.  9.103
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  1.100 /  1.  1.100
   libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with 
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging 
level) with argument '99'.
Reading option '-i' ... matched as input file with argument 
'20150204_1037_beaverDam7_rec_5472-360p.mov'.
Reading option '-ss' ... matched as option 'ss' (set the start time 
offset) with argument '3'.
Reading option '-t' ... matched as option 't' (record or transcode 
"duration" seconds of audio/video) with argument '2'.
Reading option '-c' ... matched as option 'c' (codec name) with argument 
'copy'.
Reading option '20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov' ... 
matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input file 
20150204_1037_beaverDam7_rec_5472-360p.mov.
Successfully parsed a group of options.
Opening an input file: 20150204_1037_beaverDam7_rec_5472-360p.mov.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] Format mov,mp4,m4a,3gp,3g2,mj2 
probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] Before avformat_find_stream_info() 
pos: 6740454 bytes read:49507 seeks:1
[h264 @ 0x8097220] no picture
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x80969e0] After avformat_find_stream_info() 
pos: 35233 bytes read:115043 seeks:2 frames:4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 
'20150204_1037_beaverDam7_rec_5472-360p.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf56.19.100
     comment         : HDDVR-Mobius
     comment-eng     : HDDVR-Mobius
   Duration: 00:00:24.00, start: 0.000000, bitrate: 2246 kb/s
     Stream #0:0(eng), 3, 1/15360: Video: h264 (High) (avc1 / 
0x31637661), yuv420p(left), 640x360 (640x368), 1/60, 1729 kb/s, 30 fps, 
30 tbr, 15360 tbn, 60 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc56.21.102 libx264
     Stream #0:1(eng), 1, 1/32000: Audio: pcm_s16le (sowt / 0x74776F73), 
32000 Hz, mono, s16, 512 kb/s (default)
     Metadata:
       handler_name    : DataHandler
Successfully opened the file.
Parsing a group of options: output file 
20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov.
Applying option ss (set the start time offset) with argument 3.
Applying option t (record or transcode "duration" seconds of 
audio/video) with argument 2.
Applying option c (codec name) with argument copy.
Successfully parsed a group of options.
Opening an output file: 20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov.
Successfully opened the file.
[mov @ 0x816fbe0] timecode: tbc=15360/1 invalid, fallback on 30/1
Output #0, mov, to '20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     comment-eng     : HDDVR-Mobius
     comment         : HDDVR-Mobius
     encoder         : Lavf56.19.100
     Stream #0:0(eng), 0, 1/15360: Video: h264 (avc1 / 0x31637661), 
yuv420p(left), 640x360 (0x0), 1/15360, q=2-31, 1729 kb/s, 30 fps, 30 
tbr, 15360 tbn, 15360 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc56.21.102 libx264
     Stream #0:1(eng), 0, 1/32000: Audio: pcm_s16le (sowt / 0x74776F73), 
32000 Hz, mono, 512 kb/s (default)
     Metadata:
       handler_name    : DataHandler
Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
No more output streams to write to, finishing.
frame=    0 fps=0.0 q=-1.0 Lsize=     126kB time=00:00:02.00 bitrate= 
514.9kbits/s
video:0kB audio:125kB subtitle:0kB other streams:0kB global headers:0kB 
muxing overhead: 0.573438%
Input file #0 (20150204_1037_beaverDam7_rec_5472-360p.mov):
   Input stream #0:0 (video): 251 packets read (1907581 bytes);
   Input stream #0:1 (audio): 265 packets read (530432 bytes);
   Total: 516 packets (2438013 bytes) demuxed
Output file #0 (20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov):
   Output stream #0:0 (video): 0 packets muxed (0 bytes);
   Output stream #0:1 (audio): 64 packets muxed (128000 bytes);
   Total: 64 packets (128000 bytes) muxed
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x8099ec0] Statistics: 32 seeks, 89 writeouts
[AVIOContext @ 0x808eb00] Statistics: 2507107 bytes read, 2 seeks

 > ffprobe 20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov
ffprobe version N-69557-gb119945 Copyright (c) 2007-2015 the FFmpeg 
developers
   built with gcc 4.9.1 (GCC)
   configuration: --enable-gpl --enable-libx264 --disable-doc 
--disable-htmlpages --disable-podpages --disable-ffserver 
--disable-network --enable-libfreetype --enable-libfontconfig 
--enable-shared
   libavutil      54. 18.100 / 54. 18.100
   libavcodec     56. 21.102 / 56. 21.102
   libavformat    56. 19.100 / 56. 19.100
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5.  9.103 /  5.  9.103
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  1.100 /  1.  1.100
   libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 
'20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf56.19.100
     comment         : HDDVR-Mobius
     comment-eng     : HDDVR-Mobius
   Duration: 00:00:02.00, start: 0.000000, bitrate: 514 kb/s
     Stream #0:0(eng): Audio: pcm_s16le (sowt / 0x74776F73), 32000 Hz, 
mono, s16, 512 kb/s (default)
     Metadata:
       handler_name    : DataHandler


Notice there is no video stream in the test3 output.

Also the tbc don't match. Step 1 wrote the tbc as 30 (default), it 
becomes 60 (default) at the 2nd stage input, and then 15360 (default) at 
the last output.
Which tbc is (default)? The meaning of default is lost and confusing.

Error message: " tbc=15360/1 invalid" seems like perhaps it is confusing 
tbc and tbn?

Source file 52Mb:
http://seahorseCorral.org/videos/tests/20150204_1037_beaverDam7_rec_5472.MOV

The other files are derivatives of the first, but here they are anyways:
http://seahorseCorral.org/videos/tests/20150204_1037_beaverDam7_rec_5472-360p.mov
http://seahorseCorral.org/videos/tests/20150204_1037_beaverDam7_rec_5472-360p_c12t8.mov
http://seahorseCorral.org/videos/tests/20150204_1037_beaverDam7_rec_5472-360p_c3t2.mov

I am also seeing sync errors similar to as in test2, when 
clipping/trimming first, and then later re-encoding with cropping and 
resize, (like zooming in to the center of the video for example.) I'll 
pass on more examples for now. The above test2 looks adequate to 
reproduce and fix.

Stewart





More information about the ffmpeg-user mailing list