【问题标题】:Encoding Video With Variable Framerate使用可变帧率编码视频
【发布时间】:2019-02-15 11:54:12
【问题描述】:

我在一个文件夹中有一个带时间戳的图像列表。所有图像都命名为 %12d_us.jpeg (即 000000020038_us.jpeg 等)。这些图像是以可变帧速率记录的,因此虽然一个视频可能已经以 40 fps 的速度拍摄到其他视频,但 fps 可能已经下降到 30 甚至 20 fps。但是,我确实有以它们的名称编码的每个图像的时间戳。有没有办法对这些图像进行编码,使它们类似于捕获它们的原始视频流(即以动态帧速率)。

如果有人能对此提供帮助,我将不胜感激。我应该补充一点,我正在运行 Windows,所以我不能使用 glob 模式,因为它不是我的操作系统 POSIX 的一部分。

【问题讨论】:

    标签: encoding ffmpeg video-streaming precision video-processing


    【解决方案1】:

    您可以使用 FFmpeg 的 concat 功能:http://ffmpeg.org/ffmpeg-formats.html#concat-1

    ffmpeg -i duration.txt -c:a copy -vf fps=30 output.mp4

    您必须根据您的文件名生成 duration.txt - 例如:

    ffconcat version 1.0
    file 000000020038_us.jpeg
    duration 2
    file 000000050039_us.jpeg
    duration 5
    file 000000010040_us.jpeg
    duration 1
    

    【讨论】:

    • 这非常有效。我能够让它接受分数的持续时间。我使用了 6 位的小数来表示持续时间并且它有效。
    • 如果持续时间是小数怎么办?
    • 这可以使用标准输入来完成,而不会将图像写入磁盘吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2012-11-12
    • 2019-11-18
    • 1970-01-01
    相关资源
    最近更新 更多