如何解决无法使用 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),5.1(side),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个问题:
- split filter 用于视频。如果您想分割音频,请使用 asplit。
- 您正在尝试将视频放入 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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。