Opened 12 years ago
Last modified 11 years ago
#2522 open enhancement
Give ffmpeg (better) mp4 chapter editing support
Reported by: | otters | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | undetermined |
Version: | git-master | Keywords: | chapters |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
It would be cool to either
- merge chaptered mpeg-4 files (m4b, etc.) and have the chapters + chapter offsets automatically adjusted
- be able to do #1 manually.
If I merge two m4bs right now, the resultant file has the length and chapters of the first.
$ ffmpeg -i 04\ Harry\ Potter\ and\ the\ Goblet\ of\ Fire,\ Part\ 1.m4b -i 05\ Harry\ Potter\ and\ the\ Goblet\ of\ Fire,\ Part\ 2.m4b -y output.m4a ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers built on Apr 30 2013 13:13:33 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid libavutil 52. 18.100 / 52. 18.100 libavcodec 54. 92.100 / 54. 92.100 libavformat 54. 63.104 / 54. 63.104 libavdevice 54. 3.103 / 54. 3.103 libavfilter 3. 42.103 / 3. 42.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7f4015a00] stream 0, timescale not set [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7f4015a00] max_analyze_duration 5000000 reached at 5015510 microseconds Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '04 Harry Potter and the Goblet of Fire, Part 1.m4b': Metadata: major_brand : mp42 minor_version : 1 compatible_brands: mp42mp41 creation_time : 2013-04-30 17:05:28 title : Harry Potter and the Goblet of Fire, Part 1 track : 4/12 album : Harry Potter genre : Audiobooks artist : J. K. Rowling encoder : Audiobook Builder 1.5.3 (www.splasm.com), QuickTime 7.7.1 media_type : 2 Duration: 12:40:14.85, start: 0.000000, bitrate: 301 kb/s Chapter #0.0: start 0.000000, end 1616.706667 Metadata: title : The Riddle House Chapter #0.1: start 1616.706667, end 2630.053333 Metadata: title : The Scar Chapter #0.2: start 2630.053333, end 3769.386667 Metadata: title : The Invitation Chapter #0.3: start 3769.386667, end 4891.320000 Metadata: title : Back to the Burrow Chapter #0.4: start 4891.320000, end 6217.813333 Metadata: title : Weasleys' Wizard Wheezes Chapter #0.5: start 6217.813333, end 7104.106667 Metadata: title : The Portkey Chapter #0.6: start 7104.106667, end 9077.773333 Metadata: title : Bagman and Crouch Chapter #0.7: start 9077.773333, end 11278.266667 Metadata: title : The Quidditch World Cup Chapter #0.8: start 11278.266667, end 14019.426667 Metadata: title : The Dark Mark Chapter #0.9: start 14019.426667, end 15219.186667 Metadata: title : Mayhem at the Ministry Chapter #0.10: start 15219.186667, end 16450.040000 Metadata: title : Aboard the Hogwarts Express Chapter #0.11: start 16450.040000, end 18660.160000 Metadata: title : The Triwizard Tournament Chapter #0.12: start 18660.160000, end 20293.186667 Metadata: title : Mad-Eye Moody Chapter #0.13: start 20293.186667, end 22304.925000 Metadata: title : The Unforgivable Curses Chapter #0.14: start 22304.925000, end 24397.378333 Metadata: title : Beauxbatons and Durmstrang Chapter #0.15: start 24397.378333, end 26863.071667 Metadata: title : The Goblet of Fire Chapter #0.16: start 26863.071667, end 28587.405000 Metadata: title : The Four Champions Chapter #0.17: start 28587.405000, end 31132.271667 Metadata: title : The Weighing of the Wands Chapter #0.18: start 31132.271667, end 33531.911667 Metadata: title : The Hungarian Horntail Chapter #0.19: start 33531.911667, end 36202.245000 Metadata: title : The First Task Chapter #0.20: start 36202.245000, end 38363.178333 Metadata: title : The House-Elf Liberation Front Chapter #0.21: start 38363.178333, end 40051.618333 Metadata: title : The Unexpected Task Chapter #0.22: start 40051.618333, end 43178.978333 Metadata: title : The Yule Ball Chapter #0.23: start 43178.978333, end 45614.880000 Metadata: title : Rita Skeeter's Scoop Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 298 kb/s Metadata: creation_time : 2013-04-30 17:05:28 handler_name : Apple Sound Media Handler Stream #0:1(eng): Video: png (png / 0x20676E70), rgba, 425x512 [SAR 2835:2835 DAR 425:512], 0 kb/s, 0k fps, 0k tbr, 600 tbn, 600 tbc Metadata: creation_time : 2013-04-30 17:06:48 handler_name : ?Apple Alias Data Handler Stream #0:2(eng): Subtitle: mov_text (text / 0x74786574) Metadata: creation_time : 2013-04-30 17:06:48 handler_name : ?Apple Alias Data Handler Stream #0:3: Video: png, rgba, 850x1024 [SAR 5669:5669 DAR 425:512], 90k tbr, 90k tbn, 90k tbc [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7f406e400] stream 0, timescale not set [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7f406e400] max_analyze_duration 5000000 reached at 5015510 microseconds Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '05 Harry Potter and the Goblet of Fire, Part 2.m4b': Metadata: major_brand : mp42 minor_version : 1 compatible_brands: mp42mp41 creation_time : 2013-04-30 17:13:43 title : Harry Potter and the Goblet of Fire, Part 2 track : 5/12 album : Harry Potter genre : Audiobooks artist : J. K. Rowling encoder : Audiobook Builder 1.5.3 (www.splasm.com), QuickTime 7.7.1 media_type : 2 Duration: 07:55:55.35, start: 0.000000, bitrate: 308 kb/s Chapter #1.0: start 0.000000, end 2228.533333 Metadata: title : The Egg and the Eye Chapter #1.1: start 2228.533333, end 5145.080000 Metadata: title : The Second Task Chapter #1.2: start 5145.080000, end 7839.186667 Metadata: title : Padfoot Returns Chapter #1.3: start 7839.186667, end 10752.293333 Metadata: title : The Madness of Mr Crouch Chapter #1.4: start 10752.293333, end 12453.186667 Metadata: title : The Dream Chapter #1.5: start 12453.186667, end 15063.880000 Metadata: title : The Pensieve Chapter #1.6: start 15063.880000, end 18109.546667 Metadata: title : The Third Task Chapter #1.7: start 18109.546667, end 18895.600000 Metadata: title : Flesh, Blood & Bone Chapter #1.8: start 18895.600000, end 20799.280000 Metadata: title : The Death Eaters Chapter #1.9: start 20799.280000, end 21947.453333 Metadata: title : Priori Incantatem Chapter #1.10: start 21947.453333, end 24205.920000 Metadata: title : Veritaserum Chapter #1.11: start 24205.920000, end 26618.813333 Metadata: title : The Parting of the Ways Chapter #1.12: start 26618.813333, end 28555.365000 Metadata: title : The Beginning Stream #1:0(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 306 kb/s Metadata: creation_time : 2013-04-30 17:13:43 handler_name : Apple Sound Media Handler Stream #1:1(eng): Video: png (png / 0x20676E70), rgba, 425x512 [SAR 2835:2835 DAR 425:512], 0 kb/s, 0k fps, 0k tbr, 600 tbn, 600 tbc Metadata: creation_time : 2013-04-30 17:14:29 handler_name : ?Apple Alias Data Handler Stream #1:2(eng): Subtitle: mov_text (text / 0x74786574) Metadata: creation_time : 2013-04-30 17:14:29 handler_name : ?Apple Alias Data Handler Stream #1:3: Video: png, rgba, 850x1024 [SAR 5669:5669 DAR 425:512], 90k tbr, 90k tbn, 90k tbc [libx264 @ 0x7fb7f406ca00] using SAR=1/1 [libx264 @ 0x7fb7f406ca00] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX [libx264 @ 0x7fb7f406ca00] profile High 4:4:4 Predictive, level 2.2, 4:4:4 8-bit [libx264 @ 0x7fb7f406ca00] 264 - core 125 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - 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=4 threads=12 lookahead_threads=2 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=1 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, ipod, to 'output.m4a': Metadata: major_brand : mp42 minor_version : 1 compatible_brands: mp42mp41 media_type : 2 title : Harry Potter and the Goblet of Fire, Part 1 track : 4/12 album : Harry Potter genre : Audiobooks artist : J. K. Rowling encoder : Lavf54.63.104 Chapter #0.0: start 0.000000, end 1616.706667 Metadata: title : The Riddle House Chapter #0.1: start 1616.706667, end 2630.053333 Metadata: title : The Scar Chapter #0.2: start 2630.053333, end 3769.386667 Metadata: title : The Invitation Chapter #0.3: start 3769.386667, end 4891.320000 Metadata: title : Back to the Burrow Chapter #0.4: start 4891.320000, end 6217.813333 Metadata: title : Weasleys' Wizard Wheezes Chapter #0.5: start 6217.813333, end 7104.106667 Metadata: title : The Portkey Chapter #0.6: start 7104.106667, end 9077.773333 Metadata: title : Bagman and Crouch Chapter #0.7: start 9077.773333, end 11278.266667 Metadata: title : The Quidditch World Cup Chapter #0.8: start 11278.266667, end 14019.426667 Metadata: title : The Dark Mark Chapter #0.9: start 14019.426667, end 15219.186667 Metadata: title : Mayhem at the Ministry Chapter #0.10: start 15219.186667, end 16450.040000 Metadata: title : Aboard the Hogwarts Express Chapter #0.11: start 16450.040000, end 18660.160000 Metadata: title : The Triwizard Tournament Chapter #0.12: start 18660.160000, end 20293.186667 Metadata: title : Mad-Eye Moody Chapter #0.13: start 20293.186667, end 22304.925000 Metadata: title : The Unforgivable Curses Chapter #0.14: start 22304.925000, end 24397.378333 Metadata: title : Beauxbatons and Durmstrang Chapter #0.15: start 24397.378333, end 26863.071667 Metadata: title : The Goblet of Fire Chapter #0.16: start 26863.071667, end 28587.405000 Metadata: title : The Four Champions Chapter #0.17: start 28587.405000, end 31132.271667 Metadata: title : The Weighing of the Wands Chapter #0.18: start 31132.271667, end 33531.911667 Metadata: title : The Hungarian Horntail Chapter #0.19: start 33531.911667, end 36202.245000 Metadata: title : The First Task Chapter #0.20: start 36202.245000, end 38363.178333 Metadata: title : The House-Elf Liberation Front Chapter #0.21: start 38363.178333, end 40051.618333 Metadata: title : The Unexpected Task Chapter #0.22: start 40051.618333, end 43178.978333 Metadata: title : The Yule Ball Chapter #0.23: start 43178.978333, end 45614.880000 Metadata: title : Rita Skeeter's Scoop Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv444p, 425x512 [SAR 1:1 DAR 425:512], q=-1--1, 19200 tbn, 0k tbc Metadata: creation_time : 2013-04-30 17:06:48 handler_name : ?Apple Alias Data Handler Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 128 kb/s Metadata: creation_time : 2013-04-30 17:05:28 handler_name : Apple Sound Media Handler Stream mapping: Stream #0:1 -> #0:0 (png -> libx264) Stream #0:0 -> #0:1 (aac -> libfaac) Press [q] to stop, [?] for help frame= 1 fps=0.0 q=17.0 Lsize= 695921kB time=12:40:14.88 bitrate= 125.0kbits/s video:72kB audio:688161kB subtitle:0 global headers:0kB muxing overhead 1.116984% [libx264 @ 0x7fb7f406ca00] frame I:1 Avg QP:19.95 size: 73363 [libx264 @ 0x7fb7f406ca00] mb I I16..4: 1.3% 48.7% 50.0% [libx264 @ 0x7fb7f406ca00] 8x8 transform intra:48.7% [libx264 @ 0x7fb7f406ca00] coded y,u,v intra: 95.7% 86.3% 91.5% [libx264 @ 0x7fb7f406ca00] i16 v,h,dc,p: 100% 0% 0% 0% [libx264 @ 0x7fb7f406ca00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 17% 13% 7% 8% 11% 6% 11% 9% [libx264 @ 0x7fb7f406ca00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 18% 10% 6% 10% 12% 9% 8% 9% [libx264 @ 0x7fb7f406ca00] kb/s:0.01
The resultant audio file is smaller than either but has the chapters and length of Part 1, so I'm not sure whether Part 2 is getting added at all.
Info about part 1:
$ ffmpeg -v 9 -loglevel 99 -i 04\ Harry\ Potter\ and\ the\ Goblet\ of\ Fire,\ Part\ 1.m4b ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers built on Apr 30 2013 13:13:33 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid libavutil 52. 18.100 / 52. 18.100 libavcodec 54. 92.100 / 54. 92.100 libavformat 54. 63.104 / 54. 63.104 libavdevice 54. 3.103 / 54. 3.103 libavfilter 3. 42.103 / 3. 42.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 Splitting the commandline. Reading option '-v' ... matched as option 'v' (set libav* logging level) with argument '9'. Reading option '-loglevel' ... matched as option 'loglevel' (set libav* logging level) with argument '99'. Reading option '-i' ... matched as input file with argument '04 Harry Potter and the Goblet of Fire, Part 1.m4b'. Finished splitting the commandline. Parsing a group of options: global . Applying option v (set libav* logging level) with argument 9. Successfully parsed a group of options. Parsing a group of options: input file 04 Harry Potter and the Goblet of Fire, Part 1.m4b. Successfully parsed a group of options. Opening an input file: 04 Harry Potter and the Goblet of Fire, Part 1.m4b. [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc5e8815a00] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc5e8815a00] ISO: File Type Major Brand: mp42 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc5e8815a00] stream 0, timescale not set [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc5e8815a00] File position before avformat_find_stream_info() is 12552911 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc5e8815a00] max_analyze_duration 5000000 reached at 5015510 microseconds [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc5e8815a00] File position after avformat_find_stream_info() is 12746820 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '04 Harry Potter and the Goblet of Fire, Part 1.m4b': Metadata: major_brand : mp42 minor_version : 1 compatible_brands: mp42mp41 creation_time : 2013-04-30 17:05:28 title : Harry Potter and the Goblet of Fire, Part 1 track : 4/12 album : Harry Potter genre : Audiobooks artist : J. K. Rowling encoder : Audiobook Builder 1.5.3 (www.splasm.com), QuickTime 7.7.1 media_type : 2 Duration: 12:40:14.85, start: 0.000000, bitrate: 301 kb/s Chapter #0.0: start 0.000000, end 1616.706667 Metadata: title : The Riddle House Chapter #0.1: start 1616.706667, end 2630.053333 Metadata: title : The Scar Chapter #0.2: start 2630.053333, end 3769.386667 Metadata: title : The Invitation Chapter #0.3: start 3769.386667, end 4891.320000 Metadata: title : Back to the Burrow Chapter #0.4: start 4891.320000, end 6217.813333 Metadata: title : Weasleys' Wizard Wheezes Chapter #0.5: start 6217.813333, end 7104.106667 Metadata: title : The Portkey Chapter #0.6: start 7104.106667, end 9077.773333 Metadata: title : Bagman and Crouch Chapter #0.7: start 9077.773333, end 11278.266667 Metadata: title : The Quidditch World Cup Chapter #0.8: start 11278.266667, end 14019.426667 Metadata: title : The Dark Mark Chapter #0.9: start 14019.426667, end 15219.186667 Metadata: title : Mayhem at the Ministry Chapter #0.10: start 15219.186667, end 16450.040000 Metadata: title : Aboard the Hogwarts Express Chapter #0.11: start 16450.040000, end 18660.160000 Metadata: title : The Triwizard Tournament Chapter #0.12: start 18660.160000, end 20293.186667 Metadata: title : Mad-Eye Moody Chapter #0.13: start 20293.186667, end 22304.925000 Metadata: title : The Unforgivable Curses Chapter #0.14: start 22304.925000, end 24397.378333 Metadata: title : Beauxbatons and Durmstrang Chapter #0.15: start 24397.378333, end 26863.071667 Metadata: title : The Goblet of Fire Chapter #0.16: start 26863.071667, end 28587.405000 Metadata: title : The Four Champions Chapter #0.17: start 28587.405000, end 31132.271667 Metadata: title : The Weighing of the Wands Chapter #0.18: start 31132.271667, end 33531.911667 Metadata: title : The Hungarian Horntail Chapter #0.19: start 33531.911667, end 36202.245000 Metadata: title : The First Task Chapter #0.20: start 36202.245000, end 38363.178333 Metadata: title : The House-Elf Liberation Front Chapter #0.21: start 38363.178333, end 40051.618333 Metadata: title : The Unexpected Task Chapter #0.22: start 40051.618333, end 43178.978333 Metadata: title : The Yule Ball Chapter #0.23: start 43178.978333, end 45614.880000 Metadata: title : Rita Skeeter's Scoop Stream #0:0(eng), 218, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 298 kb/s Metadata: creation_time : 2013-04-30 17:05:28 handler_name : Apple Sound Media Handler Stream #0:1(eng), 1, 1/600: Video: png (png / 0x20676E70), rgba, 425x512 [SAR 2835:2835 DAR 425:512], 1/600, 0 kb/s, 0k fps, 0k tbr, 600 tbn, 600 tbc Metadata: creation_time : 2013-04-30 17:06:48 handler_name : ?Apple Alias Data Handler Stream #0:2(eng), 0, 1/600: Subtitle: mov_text (text / 0x74786574) Metadata: creation_time : 2013-04-30 17:06:48 handler_name : ?Apple Alias Data Handler Stream #0:3, 1, 1/90000: Video: png, rgba, 850x1024 [SAR 5669:5669 DAR 425:512], 1/90000, 90k tbr, 90k tbn, 90k tbc Successfully opened the file. At least one output file must be specified Statistics: 13304702 bytes read, 4 seeks
Info about part 2:
$ ffmpeg -v 9 -loglevel 99 -i 05\ Harry\ Potter\ and\ the\ Goblet\ of\ Fire,\ Part\ 2.m4b ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers built on Apr 30 2013 13:13:33 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid libavutil 52. 18.100 / 52. 18.100 libavcodec 54. 92.100 / 54. 92.100 libavformat 54. 63.104 / 54. 63.104 libavdevice 54. 3.103 / 54. 3.103 libavfilter 3. 42.103 / 3. 42.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 Splitting the commandline. Reading option '-v' ... matched as option 'v' (set libav* logging level) with argument '9'. Reading option '-loglevel' ... matched as option 'loglevel' (set libav* logging level) with argument '99'. Reading option '-i' ... matched as input file with argument '05 Harry Potter and the Goblet of Fire, Part 2.m4b'. Finished splitting the commandline. Parsing a group of options: global . Applying option v (set libav* logging level) with argument 9. Successfully parsed a group of options. Parsing a group of options: input file 05 Harry Potter and the Goblet of Fire, Part 2.m4b. Successfully parsed a group of options. Opening an input file: 05 Harry Potter and the Goblet of Fire, Part 2.m4b. [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fab91015a00] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fab91015a00] ISO: File Type Major Brand: mp42 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fab91015a00] stream 0, timescale not set [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fab91015a00] File position before avformat_find_stream_info() is 8501103 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fab91015a00] max_analyze_duration 5000000 reached at 5015510 microseconds [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fab91015a00] File position after avformat_find_stream_info() is 8653248 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '05 Harry Potter and the Goblet of Fire, Part 2.m4b': Metadata: major_brand : mp42 minor_version : 1 compatible_brands: mp42mp41 creation_time : 2013-04-30 17:13:43 title : Harry Potter and the Goblet of Fire, Part 2 track : 5/12 album : Harry Potter genre : Audiobooks artist : J. K. Rowling encoder : Audiobook Builder 1.5.3 (www.splasm.com), QuickTime 7.7.1 media_type : 2 Duration: 07:55:55.35, start: 0.000000, bitrate: 308 kb/s Chapter #0.0: start 0.000000, end 2228.533333 Metadata: title : The Egg and the Eye Chapter #0.1: start 2228.533333, end 5145.080000 Metadata: title : The Second Task Chapter #0.2: start 5145.080000, end 7839.186667 Metadata: title : Padfoot Returns Chapter #0.3: start 7839.186667, end 10752.293333 Metadata: title : The Madness of Mr Crouch Chapter #0.4: start 10752.293333, end 12453.186667 Metadata: title : The Dream Chapter #0.5: start 12453.186667, end 15063.880000 Metadata: title : The Pensieve Chapter #0.6: start 15063.880000, end 18109.546667 Metadata: title : The Third Task Chapter #0.7: start 18109.546667, end 18895.600000 Metadata: title : Flesh, Blood & Bone Chapter #0.8: start 18895.600000, end 20799.280000 Metadata: title : The Death Eaters Chapter #0.9: start 20799.280000, end 21947.453333 Metadata: title : Priori Incantatem Chapter #0.10: start 21947.453333, end 24205.920000 Metadata: title : Veritaserum Chapter #0.11: start 24205.920000, end 26618.813333 Metadata: title : The Parting of the Ways Chapter #0.12: start 26618.813333, end 28555.365000 Metadata: title : The Beginning Stream #0:0(eng), 218, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 306 kb/s Metadata: creation_time : 2013-04-30 17:13:43 handler_name : Apple Sound Media Handler Stream #0:1(eng), 1, 1/600: Video: png (png / 0x20676E70), rgba, 425x512 [SAR 2835:2835 DAR 425:512], 1/600, 0 kb/s, 0k fps, 0k tbr, 600 tbn, 600 tbc Metadata: creation_time : 2013-04-30 17:14:29 handler_name : ?Apple Alias Data Handler Stream #0:2(eng), 0, 1/600: Subtitle: mov_text (text / 0x74786574) Metadata: creation_time : 2013-04-30 17:14:29 handler_name : ?Apple Alias Data Handler Stream #0:3, 1, 1/90000: Video: png, rgba, 850x1024 [SAR 5669:5669 DAR 425:512], 1/90000, 90k tbr, 90k tbn, 90k tbc Successfully opened the file. At least one output file must be specified Statistics: 9219721 bytes read, 4 seeks
Change History (8)
comment:1 by , 12 years ago
comment:3 by , 12 years ago
This does not look like a valid ticket:
$ ffmpeg -i input1 -i input2
output will (assuming both input files contain at least an audio and a video stream) only use streams from input1.
Please test the different ways of concatenation and report back.
And please test current git head, enhancement requests are not accepted for releases.
comment:5 by , 12 years ago
Okay, with ffmpeg HEAD (just compiled it), I use the concat demuxer and the resultant file is of correct length, but it has no metadata or chapters at all.
inputs.txt
file '04 Harry Potter and the Goblet of Fire, Part 1.m4b' file '05 Harry Potter and the Goblet of Fire, Part 2.m4b'
Also, ffmpeg crashes upon exit (though the file is fine). GDB session:
gdb ffmpeg_g GNU gdb 6.3.50-20050815 (Apple version gdb-1824) (Wed Feb 6 22:51:23 UTC 2013) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ..... done warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(cavsdsp.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(cavsdsp.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(dirac_dwt.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(dirac_dwt.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(dnxhdenc.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(dnxhdenc.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(lpc.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(lpc.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(mlpdsp.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(mlpdsp.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(motion_est.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(motion_est.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(mpegaudiodec.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(mpegaudiodec.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(mpegvideo.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(mpegvideo.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavcodec/libavcodec.a(simple_idct.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavcodec/libavcodec.a(simple_idct.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libswscale/libswscale.a(rgb2rgb.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libswscale/libswscale.a(rgb2rgb.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libswscale/libswscale.a(swscale.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libswscale/libswscale.a(swscale.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g warning: .o file "/Users/otters/src/ffmpeg/libavutil/libavutil.a(cpu.o)" more recent than executable timestamp in "/usr/local/bin/ffmpeg_g" warning: Could not open OSO file /Users/otters/src/ffmpeg/libavutil/libavutil.a(cpu.o) to scan for pubtypes for objfile /usr/local/bin/ffmpeg_g (gdb) r -f concat -i inputs.txt -c copy output.mp4 Starting program: /usr/local/bin/ffmpeg_g -f concat -i inputs.txt -c copy output.mp4 Reading symbols for shared libraries ++++............................. done ffmpeg version N-52587-g53efb2f Copyright (c) 2000-2013 the FFmpeg developers built on Apr 30 2013 15:32:22 with llvm-gcc 4.2.1 (LLVM build 2336.11.00) configuration: --prefix=/usr/local --enable-debug libavutil 52. 27.101 / 52. 27.101 libavcodec 55. 6.100 / 55. 6.100 libavformat 55. 3.100 / 55. 3.100 libavdevice 55. 0.100 / 55. 0.100 libavfilter 3. 61.101 / 3. 61.101 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x102035c00] stream 0, timescale not set [mov,mp4,m4a,3gp,3g2,mj2 @ 0x102035c00] max_analyze_duration 5000000 reached at 5015510 microseconds [concat @ 0x10202d600] max_analyze_duration 5000000 reached at 5015510 microseconds [concat @ 0x10202d600] Estimating duration from bitrate, this may be inaccurate Input #0, concat, from 'inputs.txt': Duration: 00:00:00.00, start: 0.000000, bitrate: 278 kb/s Stream #0:0: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 298 kb/s Stream #0:1: Video: png (png / 0x20676E70), rgba, 425x512 [SAR 2835:2835 DAR 425:512], 0 kb/s, 0k fps, 0k tbr, 600 tbn, 600 tbc Stream #0:2: Subtitle: mov_text (text / 0x74786574) Stream #0:3: Video: png, rgba, 850x1024 [SAR 5669:5669 DAR 425:512], 90k tbr, 90k tbn, 90k tbc Output #0, mp4, to 'output.mp4': Metadata: encoder : Lavf55.3.100 Stream #0:0: Video: png (m[0][0][0] / 0x006D), rgba, 850x1024 [SAR 5669:5669 DAR 425:512], q=2-31, 90k tbn, 90k tbc Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, 298 kb/s Stream mapping: Stream #0:3 -> #0:0 (copy) Stream #0:0 -> #0:1 (copy) Press [q] to stop, [?] for help stream 0, timescale not setsize= 1682kB time=12:18:49.07 bitrate= 0.3kbits/s [mov,mp4,m4a,3gp,3g2,mj2 @ 0x102035c00] max_analyze_duration 5000000 reached at 5015510 microseconds [mp4 @ 0x102054a00] st:0 PTS: 2011615032 DTS: 2011615032 < 2011615233 invalid, clipping frame= 2 fps=0.0 q=-1.0 Lsize= 2747329kB time=20:36:10.21 bitrate= 303.4kbits/s video:3364kB audio:2731445kB subtitle:0 global headers:0kB muxing overhead 0.457797% ffmpeg_g(67492) malloc: *** error for object 0x101809600: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug Program received signal SIGABRT, Aborted. 0x00000001013a8d46 in __kill () (gdb) bt #0 0x00000001013a8d46 in __kill () #1 0x0000000101285df0 in abort () #2 0x00000001012599b9 in free () #3 0x000000010060fb9c in av_freep (arg=0x1020541c8) at mem.c:194 #4 0x0000000101288f57 in exit () #5 0x0000000100013c82 in main (argc=33740288, argv=0x16171) at ffmpeg.c:3372 (gdb) disass $pc-32,$pc+32 Dump of assembler code for function listen: 0x00000001013a8d64 <listen+0>: mov $0x200006a,%eax 0x00000001013a8d69 <listen+5>: mov %rcx,%r10 0x00000001013a8d6c <listen+8>: syscall 0x00000001013a8d6e <listen+10>: jae 0x1013a8d75 <listen+17> 0x00000001013a8d70 <listen+12>: jmpq 0x1013aa4d4 <cerror_nocancel> 0x00000001013a8d75 <listen+17>: retq 0x00000001013a8d76 <listen+18>: nop 0x00000001013a8d77 <listen+19>: nop End of assembler dump. (gdb) info all-registers rax 0x0 0 rbx 0x7fff5fbff5b0 140734799803824 rcx 0x7fff5fbff598 140734799803800 rdx 0x0 0 rsi 0x6 6 rdi 0x107a4 67492 rbp 0x7fff5fbff5c0 0x7fff5fbff5c0 rsp 0x7fff5fbff598 0x7fff5fbff598 r8 0x0 0 r9 0x0 0 r10 0x1013aa342 4315587394 r11 0x202 514 r12 0x101790000 4319674368 r13 0x1017c0000 4319870976 r14 0x101809600 4320171520 r15 0x1 1 rip 0x1013a8d46 0x1013a8d46 <__kill+10> eflags 0x202 514 cs 0x7 7 ss 0x0 0 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 -nan(0xff0023002d00bb) (raw 0xffff00ff0023002d00bb) st1 -nan(0xff0023002d00bb) (raw 0xffff00ff0023002d00bb) st2 <invalid float value> (raw 0xffff0000000000000000) st3 -nan(0xff232dbbff232dbb) (raw 0xffffff232dbbff232dbb) st4 <invalid float value> (raw 0xffff0000000000000000) st5 <invalid float value> (raw 0xffff0000000000000000) st6 <invalid float value> (raw 0xffff0000000000000000) st7 <invalid float value> (raw 0xffff0000000000000000) fctrl 0x37f 895 fstat 0x220 544 ftag 0xffff 65535 fiseg 0x2b 43 fioff 0x13cd8b0 20764848 foseg 0x23 35 fooff 0x5fbff508 1606415624 fop 0x0 0 xmm0 { v4_float = {-1.70141183e+38, 0, 0, 0}, v2_double = {-5.4861240687936887e+303, 0}, v16_int8 = {-1, 0 <repeats 15 times>}, v8_int16 = {-256, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {-16777216, 0, 0, 0}, v2_int64 = {-72057594037927936, 0}, uint128 = 0xff000000000000000000000000000000 } (raw 0x000000000000000000000000000000ff) xmm1 { v4_float = {6.4105482e-10, 6.70087097e-10, 3.61161057e-09, 7.20647161e+31}, v2_double = {1.400079248234015e-76, 2.1903872225921411e-70}, v16_int8 = {48, 48, 54, 57, 48, 56, 49, 48, 49, 120, 48, 32, 116, 99, 101, 106}, v8_int16 = {12336, 13881, 12344, 12592, 12664, 12320, 29795, 25962}, v4_int32 = {808465977, 808988976, 829960224, 1952671082}, v2_int64 = {3472334931952677168, 3564652021013505386}, uint128 = 0x3030363930383130317830207463656a } (raw 0x6a656374203078313031383039363030) xmm2 { v4_float = {1.96029927e-19, 6.67408335e+22, 7.21433831e+22, 7.43153619e+28}, v2_double = {1.398068697773651e-152, 5.2987488844886402e+180}, v16_int8 = {32, 103, 110, 105, 101, 98, 32, 114, 101, 116, 110, 105, 111, 112, 32, 58}, v8_int16 = {8295, 28265, 25954, 8306, 25972, 28265, 28528, 8250}, v4_int32 = {543649385, 1700929650, 1702129257, 1869619258}, v2_int64 = {2334956330766442610, 7310589494249398330}, uint128 = 0x20676e696562207265746e696f70203a } (raw 0x3a20706f696e746572206265696e6720) xmm3 { v4_float = {1.08864626e+27, 7.3696661e+28, 2.84917486e+20, 6.77207627e+22}, v2_double = {1.153141411761155e+214, 3.2513835464533637e+161}, v16_int8 = {108, 97, 32, 116, 111, 110, 32, 115, 97, 119, 32, 100, 101, 101, 114, 102}, v8_int16 = {27745, 8308, 28526, 8307, 24951, 8292, 25957, 29286}, v4_int32 = {1818304628, 1869488243, 1635197028, 1701147238}, v2_int64 = {7809558913294934131, 7023117759477543526}, uint128 = 0x6c6120746f6e20736177206465657266 } (raw 0x667265656420776173206e6f7420616c) xmm4 { v4_float = {2.38793926e-38, 6.30194116e-36, 2.4375, 0}, v2_double = {8.2078803991318393e-304, 7}, v16_int8 = {1, 2, 3, 4, 5, 6, 7, 8, 64, 28, 0, 0, 0, 0, 0, 0}, v8_int16 = {258, 772, 1286, 1800, 16412, 0, 0, 0}, v4_int32 = {16909060, 84281096, 1075576832, 0}, v2_int64 = {72623859790382856, 4619567317775286272}, uint128 = 0x0102030405060708401c000000000000 } (raw 0x0000000000001c400807060504030201) xmm5 { v4_float = {0, 0, 1.72889864, 3.16473191e+35}, v2_double = {0, 0.45779740293729293}, v16_int8 = {0, 0, 0, 0, 0, 0, 0, 0, 63, -35, 76, -115, 122, 115, -51, 85}, v8_int16 = {0, 0, 0, 0, 16349, 19597, 31347, -12971}, v4_int32 = {0, 0, 1071467661, 2054409557}, v2_int64 = {0, 4601918564771024213}, uint128 = 6182724833643388223 } (raw 0x55cd737a8d4cdd3f0000000000000000) xmm6 { v4_float = {1.15232481e-28, 3.03104765e-26, 7.96708809e-24, 2.09272171e-21}, v2_double = {1.9074368412237584e-226, 9.3747856527310008e-188}, v16_int8 = {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, v8_int16 = {4370, 4884, 5398, 5912, 6426, 6940, 7454, 7968}, v4_int32 = {286397204, 353769240, 421141276, 488513312}, v2_int64 = {1230066625199609624, 1808788007904223008}, uint128 = 0x1112131415161718191a1b1c1d1e1f20 } (raw 0x201f1e1d1c1b1a191817161514131211) xmm7 { v4_float = {0, 0, 0, 0}, v2_double = {0, 0}, v16_int8 = {0 <repeats 16 times>}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {0, 0, 0, 0}, v2_int64 = {0, 0}, uint128 = 0 } (raw 0x00000000000000000000000000000000) xmm8 { v4_float = {2.59315147e-09, 6.78806373e-07, 0.000177604088, 0.0464470387}, v2_double = {1.0300843656201408e-71, 5.0519815492833995e-33}, v16_int8 = {49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64}, v8_int16 = {12594, 13108, 13622, 14136, 14650, 15164, 15678, 16192}, v4_int32 = {825373492, 892745528, 960117564, 1027489600}, v2_int64 = {3544952156018063160, 4123673538722676544}, uint128 = 0x3132333435363738393a3b3c3d3e3f40 } (raw 0x403f3e3d3c3b3a393837363534333231) xmm9 { v4_float = {5.49342432e-19, 1.44114715e-16, 3.77850285e-14, 9.90123261e-12}, v2_double = {4.4326565212010269e-149, 2.1762701218027049e-110}, v16_int8 = {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48}, v8_int16 = {8482, 8996, 9510, 10024, 10538, 11052, 11566, 12080}, v4_int32 = {555885348, 623257384, 690629420, 758001456}, v2_int64 = {2387509390608836392, 2966230773313449776}, uint128 = 0x2122232425262728292a2b2c2d2e2f30 } (raw 0x302f2e2d2c2b2a292827262524232221) xmm10 { v4_float = {0, 0, 0, 0}, v2_double = {0, 0}, v16_int8 = {0 <repeats 16 times>}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {0, 0, 0, 0}, v2_int64 = {0, 0}, uint128 = 0 } (raw 0x00000000000000000000000000000000) xmm11 { v4_float = {0, 0, 0, 0}, v2_double = {0, 0}, v16_int8 = {0 <repeats 16 times>}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {0, 0, 0, 0}, v2_int64 = {0, 0}, uint128 = 0 } (raw 0x00000000000000000000000000000000) xmm12 { v4_float = {0, 0, 0, 0}, v2_double = {0, 0}, v16_int8 = {0 <repeats 16 times>}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {0, 0, 0, 0}, v2_int64 = {0, 0}, uint128 = 0 } (raw 0x00000000000000000000000000000000) xmm13 { v4_float = {0, 0, 0, 0}, v2_double = {0, 0}, v16_int8 = {0 <repeats 16 times>}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {0, 0, 0, 0}, v2_int64 = {0, 0}, uint128 = 0 } (raw 0x00000000000000000000000000000000) xmm14 { v4_float = {0, 0, 0, 0}, v2_double = {0, 0}, v16_int8 = {0 <repeats 16 times>}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {0, 0, 0, 0}, v2_int64 = {0, 0}, uint128 = 0 } (raw 0x00000000000000000000000000000000) xmm15 { v4_float = {0, 0, 0, 0}, v2_double = {0, 0}, v16_int8 = {0 <repeats 16 times>}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0}, v4_int32 = {0, 0, 0, 0}, v2_int64 = {0, 0}, uint128 = 0 } (raw 0x00000000000000000000000000000000) mxcsr 0x1fa0 8096
comment:6 by , 12 years ago
Please check whether this patch fixes the crash:
http://ffmpeg.org/pipermail/ffmpeg-devel/2013-April/142854.html
The concat demuxer does not handle chapters yet, but there is nothing preventing it in theory.
I do not understand richardpl's remark, except as an unpleasant and unfounded snarky criticism. For reference, chapters are automatically updated when using the -ss
and -t
options.
comment:8 by , 11 years ago
Keywords: | chapters added |
---|---|
Priority: | normal → wish |
Status: | new → open |
Version: | 1.2 → git-master |
Would provide the input files, but they are both about 1.3GB and I'm not sure of any hosting service that allows files that big.