【问题标题】:FFMpeg: how to merge video and audio and tail align video to audio length?FFMpeg:如何合并视频和音频并将视频尾部对齐到音频长度?
【发布时间】:2021-11-20 17:35:58
【问题描述】:

我有一个视频文件和一个音频文件要合并在一起。音频持续时间比视频短。我想将它们对齐在尾部并切断视频的头部。

图表说明:

[xxxx------] video
    [------] audio
    [======] merged

视频的“x”部分被删除。

视频/音频的时长未知,但音频时长保证比视频短。未知的原因是因为我正在动态生成视频并通过管道传输到 FFmpeg,因此无法事先知道持续时间。

【问题讨论】:

    标签: audio video ffmpeg mp4


    【解决方案1】:

    回答我自己的问题,因为还没有人回答,经过一些研究我找到了解决方案。

    我的解决方案是先修剪视频,然后合并修剪后的视频和音频。

    1. 获取音频长度
    2. 剪裁视频并保存为临时文件
    3. 合并修剪后的视频和音频
        # get audio length
        AUDIO_LENGTH=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $AUDIO)
        AUDIO_LENGTH_INVERSE=$(echo "-$AUDIO_LENGTH" | bc)
    
        # trim video file so it matches audio file in length
        # -sseof $AUDIO_LENGTH_INVERSE: starts at audio length relative to EOF (end of file)
        # -i $VIDEO: input video path
        # -t $AUDIO_LENGTH: duration of the video that it should process
        ffmpeg -sseof $AUDIO_LENGTH_INVERSE -i $VIDEO -t $AUDIO_LENGTH $TEMP
        
        # merge video and audio
        ffmpeg -i $TEMP -i $AUDIO -c:v copy $OUTPUT
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2010-12-16
      相关资源
      最近更新 更多