好吧,我知道这个问题已经被问过无数次了。然而,我有一个小补充的问题,我似乎没有能够找到我的谷歌搜索。
我当然不是FFMPEG的专业人士......我一直在使用FFMPEG的标准加速/减速模板,我使用的是:
ffmpeg -i input.mp4 -filter:v "setpts=PTS/60" -an output.mp4
字符串
我目前正在处理一个小时长的4K/60 FPS视频......我想把它缩小到大约30秒左右,所以我使用PTS/100,我不需要音频......问题是,这需要永远......我完全期望它。
但是当我坐在这里等待它完成的时候...我不禁想知道...有没有更快/更有效的方法来完成这一点?我知道FFMPEG有很多奇怪的事情,关于你使用的命令的顺序,以加快寻道时间,预设等等。
3条答案
按热度按时间w51jfk4q1#
您可以使用
字符串
其中
0.016667
是1/60
。但是,这将保留所有帧,如果输入时基没有足够的分辨率,您将获得不正确的时间戳。你可以先创建一个临时文件来解决这个问题。
型
然后在这个临时文件上运行第一个命令。
fsi0uk1n2#
以下命令序列可能有助于解决该问题:
字符串
8yparm6h3#
那个
setpts
过滤器方法也没有让我高兴。这需要很长时间,而且新文件的大小似乎相同。我使用
image2pipe
将图像直接 curl 成ffmpeg。经过一番尝试,我可以像这样链接它:字符串
有两个破折号
-
可以正确使用,还有-r
帧率选项。在输入文件的输出端,这是有意义的:每10秒仅馈送第二FFMPEG一帧。新的out.mp4短了5秒。原版是22分钟和2GB。转换/缩短/加速花了3-5分钟。
部分问题是缺少
image2pipe
的文档。从概念上讲,它与image2
相同。也许这是相同的,这是所有关于破折号,和管道操作符。在ffmpeg的网站上也有使用
-c copy
两次的“raw bitstream”方法。但我还没有测试过。