我有一个使用 ffmpeg 连接文件的代码。这里 silent.wav 是一个长度为 2 秒的静音音频文件。我需要将此静音音频文件添加到 REC00096_Jun-06-2014 16.47.28.wav 前面。我尝试了以下代码。
ffmpeg -i D:\vishnu\silence.wav -i D:\vishnu\REC00096_Jun-06-2014 16.47.28.wav \-filter_complex '[0:0][1:0][2:0][3:0]concat=n=2:v=0:a=1[out]' \-map '[out]' output.wav
以下是我收到的错误。
D:\vishnu>ffmpeg -i silence.wav -i "D:\vishnu\REC00096_Jun-06-2014 16.47.28.wav"
-filter_complex '[0:0][1:0]concat=n=2:v=0:a=1[out]' -map '[out]' output.wav
ffmpeg version N-59036-g5d8e4f6 Copyright (c) 2000-2013 the FFmpeg developers
built on Dec 12 2013 22:01:01 with gcc 4.8.2 (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-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 58.100 / 52. 58.100
libavcodec 55. 45.101 / 55. 45.101
libavformat 55. 22.100 / 55. 22.100
libavdevice 55. 5.102 / 55. 5.102
libavfilter 3. 92.100 / 3. 92.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
Input #0, wav, from 'silence.wav':
Metadata:
encoder : Lavf55.22.100
Duration: 00:00:02.02, bitrate: 4234 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 5.1, s16, 4
233 kb/s
Guessed Channel Layout for Input Stream #1.0 : mono
Input #1, wav, from 'D:\vishnu\REC00096_Jun-06-2014 16.47.28.wav':
Duration: 00:00:08.04, bitrate: 384 kb/s
Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 24000 Hz, mono, s16,
384 kb/s
[wav @ 02755e40] Invalid stream specifier: '[out]'.
Last message repeated 1 times
Stream map ''[out]'' matches no streams.
D:\vishnu>
答案1
你在 处有一个反斜杠\-filter_complex
。我不知道它从何而来,但你应该直接写成-filter_complex
。 也一样-map
。
也许你一直在尝试复制粘贴多行 Bash 脚本,其中换行符用反斜杠转义,例如如果有人给你这个 Bash 脚本:
ffmpeg -i silence.wav -i "REC00096_Jun-06-2014 16.47.28.wav" \
-filter_complex "[0:0][1:0]concat=n=2:v=0:a=1[out]" \
-map "[out]" output.wav
那么你应该将其翻译为:
ffmpeg -i silence.wav -i "REC00096_Jun-06-2014 16.47.28.wav" -filter_complex "[0:0][1:0]concat=n=2:v=0:a=1[out]" -map "[out]" output.wav
另请注意,您只需要[0:0]
和[1:0]
。没有第三和第四个输入文件。