使用多个音频流ffmpeg时不能使用-shortest参数
Posted
技术标签:
【中文标题】使用多个音频流ffmpeg时不能使用-shortest参数【英文标题】:Can't use -shortest parameter when using multiple audio streams ffmpeg 【发布时间】:2020-11-20 09:19:14 【问题描述】:我想向已经包含声音的 mp4 视频文件添加第二个音频流。
第二个音频流比视频长一点,但我希望最终产品的长度相同。
我尝试使用 -shortest
功能,但我想添加的第二个音频流根本听不到。
我认为-shortest
只允许一个流,那么我该怎么做才能保持视频的长度相同并保持两个音频流?
这是我在问这个问题之前使用的完整命令:
ffmpeg -i input.mp4 -i input.m4a -map 0:v -map 0:a -shortest output.mp4
ffmpeg -i output.mp4
的输出:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.45.100
Duration: 00:00:32.08, start: 0.000000, bitrate: 1248 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 480x600 [SAR 1:1 DAR 4:5], 1113 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
【问题讨论】:
您如何检查第二个流?粘贴ffmpeg -i output.mp4
的读数
@Gyan 我已经更新了
【参考方案1】:
您还必须从第二个输入映射音频。
ffmpeg -i input.mp4 -i input.m4a -map 0:v -map 0:a -map 1:a -shortest -fflags +shortest -max_interleave_delta 100M output.mp4
请参阅https://***.com/a/55804507/,了解如何使shortest
生效。
【讨论】:
感谢您的帮助。现在正在显示第二个音频流,但仍然听不见。有任何想法吗? pastebin.com/iNgQXvbj 你在哪个播放器上测试过?您是否切换了音频选择? 我在 VLC 中测试过。抱歉,我的问题有点不清楚 - 最终结果是,我希望两个流同时播放。我只是合并音频流来实现这一点。感谢您的帮助!以上是关于使用多个音频流ffmpeg时不能使用-shortest参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 FFMPEG 将可搜索的 AAC 音频流写入 MP4 文件
FFMpeg SDK使用5调用FFmpeg SDK解析封装格式的视频为音频流和视频流