【问题标题】:FFMPEG: titlecard for concatentaed video results in slow-moFFMPEG:连接视频的标题卡导致慢动作
【发布时间】:2020-09-03 19:39:46
【问题描述】:

我从一个较长的视频中提取了三个剪辑。当我将它们连接在一起时,一切正常,正如预期的那样,因为它们都来自同一个来源。

现在我想在合并视频的前面添加一个标题卡。

我在 GIMP 中生成了与视频帧尺寸相同的图像,然后使用 ffmpeg 生成了 5 秒。来自它的视频。当我将它连接到其他三个的前面时,我遇到了问题。

标题卡片段正确播放,然后其余片段(视频和音频)以慢动作播放。此外,标题卡的运行时间超过 5 秒,并且主片段音频在相应视频之前开始。

我知道问题在于标题卡剪辑的生成,但到目前为止我无法弄清楚我缺少什么。显然我的比特率是错误的,但我该如何让它们匹配呢?

到目前为止我所拥有的:

我的生成脚本:

#!/bin/bash

ffmpeg -y -ss 0:03:33 -t 0:0:33.5 -i seg1.vob -filter:a "volume=4" seg1.mp4
ffmpeg -y -ss 0:13:25.5 -t 0:0:57 -i seg1.vob -filter:a "volume=4" seg2.mp4
ffmpeg -y -ss 0:16:25.5 -t 0:0:43 -i seg1.vob -filter:a "volume=4" seg3.mp4
ffmpeg -y -ss 0:7:10 -t 0:0:10 -i seg1.vob -filter:a "volume=4" -vn -b:a 394k title.mp3
ffmpeg -y -loop 1 -i title.png -t 0:0:5 -i title.mp3 -c:a aac -b:a 394k -shortest title.mp4 
ffmpeg -y -f concat -safe 0 -i contents.txt -c copy merged.mp4 

和contents.txt:

file 'title.mp4'
file 'seg1.mp4'
file 'seg2.mp4'
file 'seg3.mp4'

seg1.mp4 上的ffprobe:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'seg1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:33.52, start: 0.000000, bitrate: 677 kb/s
    Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 720x480 [SAR 32:27 DAR 16:9], 275 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 6 channels, fltp, 394 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

对于title.mp4:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'title.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:05.02, start: 0.000000, bitrate: 1290 kb/s
    Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 720x480 [SAR 191:194 DAR 573:388], 898 kb/s, 25 fps, 25 tbr, 12800 tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 389 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

【问题讨论】:

    标签: audio ffmpeg bitrate


    【解决方案1】:

    所有输入必须具有相同的属性才能正确连接。

    您的帧速率、时基、SAR/DAR 和音频通道布局各不相同。

    因为您正在过滤和重新编码每个片段,所以您可以在一个命令中完成所有操作:

    ffmpeg -loop 1 -t 5 -framerate 30000/1001 -i title.png -ss 0:7:10 -t 0:0:10 -i seg1.vob -ss 0:03:33 -t 0:0:33.5 -i seg1.vob -ss 0:13:25.5 -t 0:0:57 -i seg1.vob -ss 0:16:25.5 -t 0:0:43 -i seg1.vob -filter_complex "[0:v]setsar=32/27[title];[title][1:a][2:v][2:a][3:v][3:a][4:v][4:a]concat=n=4:v=1:a=1[v][aud];[aud]volume=4[a]" -map "[v]" -map "[a]" output.mp4
    

    【讨论】:

    • 是的,行得通!谢谢你。现在我需要仔细阅读文档,以便了解原因:)
    猜你喜欢
    • 2019-08-21
    • 2021-05-10
    • 2012-03-09
    • 2013-08-04
    • 2014-03-15
    • 2012-10-02
    • 2016-05-25
    • 2013-08-29
    • 2016-09-06
    相关资源
    最近更新 更多