我正在尝试使用 ffmpeg 从具有以下音频配置的多通道 Quicktime 文件中导出所有音频通道,但不确定以下命令是否正确。除了 L+R_Total.wav 之外,所有文件在 Quicktime 播放器中看起来和播放都正确,L+R_Total.wav 拒绝在 Quicktime 播放器或 Final Cut 中播放,但在 VLC 中播放正常,所以我确定我的 ffmpeg 命令对于第 7 轨上的立体声不正确。立体声文件大小约为 1.8GB。这是我在 Quicktime 文件中的轨道布局:
Track 1 - mono
Track 2 - mono
Track 3 - mono
Track 4 - mono
Track 5 - mono
Track 6 - mono
Track 7 - stereo
我在用:
/Users/me/Desktop/python/ffmpeg/ffmpeg -i /Users/me/Desktop/test.mov -acodec pcm_s24le -map 0:1 -y Left.wav -acodec pcm_s24le -map 0:2 Right.wav -acodec pcm_s24le -map 0:3 Center.wav -acodec pcm_s24le -map 0:4 LFE.wav -acodec pcm_s24le -map 0:5 Left_Surround.wav -acodec pcm_s24le -map 0:6 Right_Surround.wav -acodec pcm_s24le -map 0:7 Left+Right_Total.wav
以下是终端的打印输出:
MacBook-Pro:~ me$ /Users/me/Desktop/python/ffmpeg/ffmpeg -i /Users/me/Desktop/test.mov -acodec pcm_s24le -map 0:1 -y Left.wav -acodec pcm_s24le -map 0:2 Right.wav -acodec pcm_s24le -map 0:3 Center.wav -acodec pcm_s24le -map 0:4 LFE.wav -acodec pcm_s24le -map 0:5 Left_Surround.wav -acodec pcm_s24le -map 0:6 Right_Surround.wav -acodec pcm_s24le -map 0:7 Left+Right_Total.wav
ffmpeg version 2.2 Copyright (c) 2000-2014 the FFmpeg developers
built on Mar 25 2014 15:00:55 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --arch=x86_64 --enable-runtime-cpudetect
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/me/Desktop/test.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2014-03-06 11:25:34
Duration: 00:01:03.48, start: 0.000000, bitrate: 153967 kb/s
Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le, 1920x1080, 144704 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 23976 tbn, 23976 tbc (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
timecode : 00:00:00:00
Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FL), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (FR), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (LFE), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (BL), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels (BR), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, downmix, s32, 2304 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:8(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2014-03-06 11:26:04
handler_name : Apple Alias Data Handler
timecode : 00:00:00:00
Output #0, wav, to 'Left.wav':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
ISFT : Lavf55.33.100
Stream #0:0(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 1 channels (FL), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Output #1, wav, to 'Right.wav':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
ISFT : Lavf55.33.100
Stream #1:0(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 1 channels (FR), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Output #2, wav, to 'Center.wav':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
ISFT : Lavf55.33.100
Stream #2:0(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Output #3, wav, to 'LFE.wav':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
ISFT : Lavf55.33.100
Stream #3:0(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 1 channels (LFE), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Output #4, wav, to 'Left_Surround.wav':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
ISFT : Lavf55.33.100
Stream #4:0(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 1 channels (BL), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Output #5, wav, to 'Right_Surround.wav':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
ISFT : Lavf55.33.100
Stream #5:0(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 1 channels (BR), s32, 1152 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Output #6, wav, to 'Left+Right_Total.wav':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
ISFT : Lavf55.33.100
Stream #6:0(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, downmix, s32, 2304 kb/s (default)
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream mapping:
Stream #0:1 -> #0:0 (pcm_s24le -> pcm_s24le)
Stream #0:2 -> #1:0 (pcm_s24le -> pcm_s24le)
Stream #0:3 -> #2:0 (pcm_s24le -> pcm_s24le)
Stream #0:4 -> #3:0 (pcm_s24le -> pcm_s24le)
Stream #0:5 -> #4:0 (pcm_s24le -> pcm_s24le)
Stream #0:6 -> #5:0 (pcm_s24le -> pcm_s24le)
Stream #0:7 -> #6:0 (pcm_s24le -> pcm_s24le)
Press [q] to stop, [?] for help
size= 8927kB time=00:01:03.48 bitrate=1152.0kbits/s
video:0kB audio:71415kB subtitle:0 data:0 global headers:0kB muxing overhead -87.499863%
答案1
您可以尝试一下ffmpeg -i Feature.mov -map 0:7 -c copy Left_Total.wav
看看这是否有效吗?
我们需要确保立体声流中的数据可供 ffmpeg 使用。Quicktime 文件可能包含 ffmpeg 无法读取的专有容器/编解码器信息。
答案2
好的,我找到了问题所在。在 Quicktime 文件中,所有音轨均被命名并标记为左、右、中、LFE、左环绕、右环绕、左总、右总。ffmpeg 不喜欢将第 7 轨标记为左总右总,在这种情况下,它会生成一个无法播放的文件。如果我在 Quicktime Pro 中将第 7 轨重新标记为左和右并保存文件,则 ffmpeg 会运行,文件会正常播放。有没有办法解决这个问题,我不想每次在运行 ffmpeg 脚本之前手动重新标记第 7 轨。
将 Quicktime 文件第 7 轨标记为“左总计右总计”后,我从 ffmpeg 获得以下内容:
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, downmix, s32, 2304 kb/s (default)
将 Quicktime 文件第 7 轨标记为“左右”后,我从 ffmpeg 获得以下内容:
Metadata:
creation_time : 2014-03-06 11:25:34
handler_name : Apple Alias Data Handler
Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32, 2304 kb/s (default)
更新:收集了更多信息。我决定逐个版本地回滚 ffmpeg,看看是否有任何不同。问题 ID 是 ffmpeg 正确地从 quicktime 继承了轨道名称/分配,因此如果轨道被分配为左环绕,这将被继承到 ffmpeg 制作的 wav 文件中。版本 ffmpeg-1.1.3 可以工作并导出正确的立体声 wav,但它导出的所有单声道轨道都分配了“中央”。因此,此后的 ffmpeg 版本可以正确分配名称,但无法与左总右总配合使用,这似乎会破坏它,但只有在导出到 24 位时才会这样!16 位在所有版本上都可以正常工作。
所以总而言之……如果轨道分配了“左总计”“右总计”,ffmpeg 将不会从 quicktime 导出 24 位立体声音频。