【问题标题】:How to extract certain frames from a .yuv video file and create a new video using FFmpeg, OpenCV and python?如何从 .yuv 视频文件中提取某些帧并使用 FFmpeg、OpenCV 和 python 创建新视频?
【发布时间】:2020-04-07 19:15:58
【问题描述】:

我有一个 .yuv 视频文件和一个包含一些帧号的列表。我需要用列表中的帧号制作一个新视频,以及另一个带有不在列表中的帧号的视频。如何在 python 中使用 FFmpeg 和 subprocess 模块来做到这一点?我也在程序中使用 OpenCV。我需要 .yuv 和 .avi 格式的新视频。

【问题讨论】:

  • 打开yuv 文件,使用seek 获取每个帧的请求,读取帧,并将它们写入新的yuv 文件。使用 FFmpeg 将新文件从 YUV 转换为 AVI。

标签: python opencv ffmpeg subprocess


【解决方案1】:

类似这样的:

Open the YUV file in `rb` mode.
Open `inlist.yuv` and `notinlist.yuv` in `wb` mode.
Zero frame counter
Repeat until no more data in input file
    Read `framesize` bytes
    if framenumber in list:
        write to "inlist.yuv"
    else:
        write to "notinlist.yuv"
    Increment frame counter
Close files

按照 Rotem 的建议,最后使用 ffmpeg 将您的 2 个输出文件转换为 AVI。

【讨论】:

    猜你喜欢
    • 2020-06-27
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多