从moviepy中的url加载视频并保存帧

问题描述

from moviepy.editor import *

clip = ( VideoFileClip("https://filelink/file.mp4"))

clip.save_frame("frame.png",t = 3)

我可以使用 moviepy 加载视频,但它会加载完整的视频,然后保存帧。是否可以不加载完整的视频而只加载前四秒,然后在 3 秒时保存帧。

解决方法

除非我错过了什么,否则不可能使用 MoviePy。
您可以改用 ffmpeg-python

这是一个使用 ffmpeg-python 的代码示例:

import ffmpeg

stream_url = "https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4"

# Input seeking example: https://trac.ffmpeg.org/wiki/Seeking
(
    ffmpeg
    .input(stream_url,ss='00:00:03')  # Seek to third second
    .output("frame.png",pix_fmt='rgb24',frames='1')  # Select PNG codec in RGB color space and one frame.
    .overwrite_output()
    .run()
)

注意事项:

  • 该解决方案可能不适用于所有 mp4 URL 文件,因为 mp4 格式不是那么“WEB 友好” - 我认为 moov atom 必须位于文件的开头。
  • 您可能需要手动安装 FFmpeg 命令行工具(但它应该与 MoviePy 一起安装)。

结果框:
enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...