我将mp3文件连接成一个m4a。
为了节省时间,我首先进行mp3到m4a的转换(多线程),然后将输出文件(m4a)连接成一个m4a文件。
当我进行转换(mp3 - > m4a)和cancat时,concat工作。但它需要永远运行。
示例:
ffmpeg -i "concat:001.mp3|002.mp3|003.mp3" -codec:a aac -c copy output.m4a
如果我采用相同的mp3文件并将它们并行转换为m4a然后连续,我可以节省很多时间。
问题是如果我在转换的m4a文件上运行concat命令
示例cmd:
ffmpeg -i "concat:001.m4a|002.m4a|003.m4a" -c copy output.m4a
我收到以下错误:
[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000052f680]发现重复的MOOV 原子。跳过它
更新:连接m4a文件时输出(两个跟踪示例):
C:\_ffmpeg>ffmpeg -i "concat:001.m4a|002.m4a" -c copy output.m4a
ffmpeg version N-79630-g9ac154d Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enabl
e-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable
-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --ena
ble-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx
264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable
-lzma --enable-decklink --enable-zlib
libavutil 55. 22.101 / 55. 22.101
libavcodec 57. 38.100 / 57. 38.100
libavformat 57. 34.103 / 57. 34.103
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 44.100 / 6. 44.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000048a9a0] Found duplicated MOOV Atom. Skipped
it
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'concat:001.m4a|002.m4a':
Metadata:
track : 1
major_brand : M4A
minor_version : 512
title : 001 Moon Over Soho
artist : Ben Aaronovitch
album_artist : Narrated by Kobna Holdbrook-Smith
composer : Narrated by Kobna Holdbrook-Smith
album : Moon Over Soho
date : 2012
encoder : Lavf57.34.103
genre : Speech
copyright : Tantor Audio
compatible_brands: isomiso2
Duration: 00:44:03.83, start: 0.000000, bitrate: 251 kb/s
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, flt
p, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
[ipod @ 000000000048bb20] Using AVStream.codec to pass codec parameters to muxer
s is deprecated, use AVStream.codecpar instead.
Output #0, ipod, to 'output.m4a':
Metadata:
track : 1
major_brand : M4A
minor_version : 512
title : 001 Moon Over Soho
artist : Ben Aaronovitch
album_artist : Narrated by Kobna Holdbrook-Smith
composer : Narrated by Kobna Holdbrook-Smith
album : Moon Over Soho
date : 2012
compatible_brands: isomiso2
genre : Speech
copyright : Tantor Audio
encoder : Lavf57.34.103
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, 128
kb/s (default)
Metadata:
handler_name : SoundHandler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 41892kB time=00:44:03.80 bitrate= 129.8kbits/s speed=2.21e+003x
video:0kB audio:41445kB subtitle:0kB other streams:0kB global headers:0kB muxing
overhead: 1.077122%
C:\_ffmpeg>pause
Press any key to continue . . .
答案 0 :(得分:0)
无论出于何种原因,如果您尝试加入多个.mp4文件,都会出现此错误。我找到了一种解决方法,可以在文件的中间版本中添加其他扩展名(我正在复制一大组文件并将它们分块为较小的组,然后最终将分块的组合并为最终输出)。我在中间文件上使用了.ts
扩展名,然后最终输出为.mp4
格式。
这似乎避免了错误。
答案 1 :(得分:0)
我尝试连接其他来源的mp4文件时遇到了类似的问题。
我发现这篇帖子似乎可以解决问题:
Concatenating Split Media Files Using Concat Protocol(来自video.stackexchange.com:)