首页 > 解决方案 > mp4s 的 ffmpeg concat 在连接处跳转并暂停几秒钟

问题描述

我正在使用 ffmpeg 创建 10 秒的 mp4(h265) 视频块。我正在使用 image2pipe,因为这似乎对 cpu 的影响较小,命令行是:

-y -threads 1 -framerate " & FrameRate & " -f image2pipe -i pipe:.jpg -vf format=yuv420p -c:v libx265 -preset ultrafast -crf 28 -vsync vfr " & strSaveDirectory

然后我使用以下方法连接这些视频块:

"-f concat -safe 0 -i " & strConcatAVIs & " -c copy " & outPutPath

如果我播放每一个 10 秒的 mp4,它们似乎是完整的,但是当它们合并到一个文件时,有时会在加入时暂停几秒钟,有时视频会在加入时跳跃 3 或 4 秒。

通常这是几个文件的描述:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Temp\testmp4\video_1_1_2_2019_5_13_13_15_10.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:09.85, start: 0.000000, bitrate: 225 kb/s
    Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, progressive), 768x576 [SAR 1:1 DAR 4:3], 221 kb/s, 13 fps, 13 tbr, 13312 tbn, 13 tbc (default)
    Metadata:
      handler_name    : VideoHandler
-----------------------------------------------
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Temp\testmp4\video_1_1_2_2019_5_13_13_15_20.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:10.00, start: 0.000000, bitrate: 334 kb/s
    Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, progressive), 768x576 [SAR 1:1 DAR 4:3], 330 kb/s, 13 fps, 13 tbr, 13312 tbn, 13 tbc (default)
    Metadata:
      handler_name    : VideoHandler

必须至少指定一个输出文件

在我的文件“strConcatAVIs”中,我尝试在暂停的连接上添加正确的持续时间,但如果我将持续时间更改为 14、6,而不是正确的持续时间 10、10,则加速它播放非常流畅。

标签: ffmpeg

解决方案


推荐阅读