audio - 使用多个音频流ffmpeg时不能使用-shortest参数

标签 audio ffmpeg

我想向已经包含声音的 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 input.mp4 -i input.m4a -map 0:v -map 0:a -map 1:a -shortest -fflags +shortest -max_interleave_delta 100M output.mp4
https://stackoverflow.com/a/55804507/解释如何制作shortest有效的。

关于audio - 使用多个音频流ffmpeg时不能使用-shortest参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64926791/

相关文章:

使用 H264 (mp4) 编解码器的 OpenCV 流捕获 CAM

video - FFMPEG 转换为 MXF

iphone - 设置 iOS 5 的音频输入增益/音量

android - 什么是适用于 iOS/Android 的开源 ffmpeg 播放器?

python - 将模块多处理与 pyaudio 结合使用

android - 获取有关音频的信息,在另一个应用程序中播放

android - 通过音轨在 Android 中播放音乐

ffmpeg - 使用 ffmpeg 或 gstreamer 将 RTP (OPUS) 流转换为 HLS (AAC) 流

audio - 在 FFmpeg 中按语言映射流

android - Android中的多个声音按钮:通过按钮开始,停止和循环播放声音