无法使用ffmpeg从视频中提取音轨

Cannot extract audio tracks from video using ffmpeg

我尝试从视频中提取音轨并进行转码,但出现错误:Filter split:output1 has an unconnected output。如何解决这个问题?

ffmpeg 命令:

ffmpeg -i video.mp4 -filter_complex [0]split=2[s0][s1] -map [s0] -c:a aac -dn -map -0:v? -map 0:1 -map_chapters -1 -map_metadata -1 -sn video-0.aac -map [s1] -ac 2 -c:a aac -dn -map -0:v? -map 0:2 -map_chapters -1 -map_metadata -1 -sn video-1.aac -y

fprobe完整输出(条带章节信息):

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : SomeTitle
    encoder         : Lavf58.45.100
  Duration: 00:21:35.58, start: 0.000000, bitrate: 10591 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 70.000000
      Metadata:
        title           : Chapter 1
...
...
    Chapter #0:20: start 1278.000000, end 1295.584000
      Metadata:
        title           : Last Chapter
  Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 9754 kb/s, 23.98 fps, 23.98 tbr, 16k tbn, 47.95 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1(rus): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 192 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
    Side data:
      audio service type: main
  Stream #0:2(eng): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp, 640 kb/s
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
    Side data:
      audio service type: main
  Stream #0:3(eng): Data: bin_data (text / 0x74786574), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler

2 个问题:

  1. split filter 用于视频。如果你想分割音频使用 asplit.
  2. 您正在尝试将视频转换为 AAC,但 AAC 只是音频。

简化示例;假设您想要 output-0.aac 中的音频 #0 和 output-1.aac 中的音频 #1:

ffmpeg -i video.mp4 -map 0:a:0 -map_chapters -1 -map_metadata -1 output-0.aac -map 0:a:1 -map_chapters -1 -map_metadata -1 output-1.aac

有关 -map 的更多信息,请参阅 FFmpeg Wiki: Map