FFmpeg 对视频进行分段倍速处理再输出的问题

JackalZhao:有一个视频文件,要进行以下处理,[0, 13, 2 倍速] 表示从 0 到 13 帧做 2 倍速处理,按照以下列表,依次对整个视频中各个片段做不同的倍速处理后,以 H264 压制写到输入文件。希望整个过程都使用 FFmpeg 进行处理。

[0, 13, 2 倍速]
[13, 20, 1 倍速]
[20, 25, 2 倍速]
[25, 135, 1 倍速]
[135, 164, 2 倍速]
[164, 250, 1 倍速]
[250, 254, 2 倍速]
[254, 309, 1 倍速]
[309, 354, 2 倍速]
[354, 438, 1 倍速]
[438, 465, 2 倍速]
[465, 540, 1 倍速]
[540, 625, 2 倍速]

目前我实现了两种方法,但都不完美:

  1. 使用 FFmpeg 将输入视频的所有帧提取成 jpeg,依次放到一个文件夹 1,根据区间和倍速信息,将需要的帧图片移动到文件夹 2,最后将文件夹 2 的图片用 FFmpeg H264 编码合成为一个视频。缺点是:

    • 将视频的所有帧提取出来,会占用大量空间,一个 500MB 的视频提取出来后,可能会占用 30G 的硬盘空间,而且都是零散的图片文件,除了费时间,有损硬盘。
  2. 使用 openCV 将输入视频逐帧读取,根据区间和倍速信息,决定是否将这一帧写入到输出视频。缺点是:

    • 这个操作是单线程的,速度比 FFmpeg 提取照片还慢,而且写出的输出视频是未压缩的数据
    • 写出的视频还需要使用 FFmpeg 再 H264 压制一遍

    这样下来,整体还是比 FFmpeg 提取图片筛选后再压制方法一慢一些。

所以寻求可以直接使用 FFmpeg 读取输入文件的同时按上述区间和倍速信息列表用 H264 编码写到输出文件的方法。

哥哥姐姐们,求个 ffmpeg 指令~

MeowOvO:截取视频首帧做歌曲封面,如果想指定大小、分辨率分别要加什么参数啊~自己搜的指令 ffmpeg -ss 00:00:00 -i input.mp4 -vframes 1 -q:v 2 output.png 出来的好模糊 TvT

二次元与程小东

helloworld2010:一直以为二次元是物理学上的概念,没想到是指漫画与视频,一静一动。一直以为程小东应该是个帅哥,没想到是一个中年发福的大叔。尴尬至极。。。。

请教一下关于宽带的问题

leeeeec:事情是这样的,我现在用的宽带是室友的,电信。但是室友要搬走,所以我要再搞一根,但是电信有个规则是,老宽带搬走后,新宽带要一个月后才可以装。所以就想换其他的,平时看看视频玩玩 lol,联通或者移动有推荐的吗?坐标上海。

消掉李诞的笑声

pheyer:最近微博上李雪琴好像火了,所以中午我去看了一下她的脱口秀视频,看着看着就发现有一样东西使我观看体验大打折扣,那就是李诞的笑声,虽然极具鲜明个人特色,但在我听来太突出太刺耳而又有些尬,讲真,我感觉要是没他的笑声,或者他憋笑,低调的笑的话,节目质量应该会上一个档次。特地去搜了一下微博,看是不是有人跟我有同样的感觉,还真有几个仅表达个人感觉,可能有人…

为什么无线路由器会时不时限速

mainlong:用的是移动的 100M 宽带,但是有时候会限速到 10M,看个视频都卡。 师傅来了之后,发现猫出口速度正常是 100M,但是无线路由器出来就限速到 10M 了,师傅走之后就正常了,过了几天又限速了。 大家有遇到这种情况吗?