簡體   English   中英

使用FFMPEG對視頻進行音量調節和通道合並

[英]Volume adjust and channel merge on video using FFMPEG

我正在嘗試將錄制的AVI(1個視頻流,2個音頻流[1st is stereo,2nd is mono])視頻文件轉換為H264 / AAC。

我希望第二個音頻流的音量為60%,第一個音頻流的音量為100%。

我還想合並第一和第二音頻流。

使用AAC音頻輸出應為H264。

我試圖使用的命令是:

"ffmpeg.exe" 
  -i "input.avi" 
  -filter_complex " 
    [0:a:0]aformat=channel_layouts=stereo,volume=1.0[a1]; 
    [0:a:1]aformat=channel_layouts=mono,volume=0.6[a2]; 
    [a1][a2]amerge,pan=stereo|c0<c0+c2|c1<c1+c2[out]
  " 
  -map 0:v 
  -map "[out]" 
  -c:v libx264 -preset slow -crf 26 
  -c:a aac -strict experimental -ab 128000 -ac 2 -ar 48000 
  "output.mp4"

但我收到錯誤:[AVFilterGraph @ 0000000ceb630c00]以下過濾器無法選擇其格式:Parsed_amerge_4考慮在輸入或輸出附近插入(a)格式過濾器。 配置復雜過濾器出錯。 出現錯誤編號-5

我做錯了什么,如何解決?

完整控制台日志:

ffmpeg version N-76456-g6df2c94 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
  libavutil      55.  5.100 / 55.  5.100
  libavcodec     57. 14.100 / 57. 14.100
  libavformat    57. 14.100 / 57. 14.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 14.101 /  6. 14.101
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.100 /  2.  0.100
  libpostproc    54.  0.100 / 54.  0.100
[avi @ 000000b1cfa6bc20] non-interleaved AVI
Guessed Channel Layout for  Input Stream #0.1 : stereo
Guessed Channel Layout for  Input Stream #0.2 : mono
Input #0, avi, from 'input.avi':
  Metadata:
    encoder         : DxtoryCore ver2.0.0.122
    ISRC            : Video:Lagarith Lossless Codec Audio0:Lautsprecher (2- USB Audio CODEC ) Audio1:Mikrofon (2- USB Audio CODEC )
  Duration: 00:27:55.60, start: 0.000000, bitrate: 181780 kb/s
    Stream #0:0: Video: lagarith (LAGS / 0x5347414C), rgb24, 1920x1017, 179663 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
    Stream #0:2: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 1 channels, s16, 705 kb/s
[Parsed_amerge_4 @ 000000b1cfaf3200] No channel layout for input 1
Last message repeated 1 times
[AVFilterGraph @ 000000b1cfa70c00] The following filters could not choose their formats: Parsed_amerge_4
Consider inserting the (a)format filter near their input or output.
Error configuring complex filters.
Error number -5 occurred

似乎可以通過先將所有音頻流分成單獨的通道然后將其反饋到amerge過濾器來解決這個問題。

"ffmpeg.exe" 
  -i "input.avi" 
  -filter_complex "
    [0:a:0]volume=1.0,channelsplit=channel_layout=stereo[a1][a2];
    [0:a:1]volume=0.6,channelsplit=channel_layout=mono[a3];
    [a1][a2][a3]amerge=inputs=3,pan=stereo|c0<c0+c2|c1<c1+c2[out]
  " 
  -map 0:v 
  -map "[out]" 
  -c:v libx264 -preset slow -crf 26 
  -c:a aac -strict experimental -ab 128000 -ac 2 -ar 48000 
  "output.mp4"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM