如何将python上的视频转换为.mp4而不使用ffmpeg?

vhmi4jdf  于 2023-01-18  发布在  Python
关注(0)|答案(2)|浏览(208)

我需要将视频转换为.mp4格式,我曾经使用ffmpeg,但它转换太长。有没有办法转换视频到.mp4在python没有ffmpeg?

e5nqia27

e5nqia271#

UPD moviepy也依赖于ffmpeg

Zulko/moviepy

pip install MoviePy
import moviepy.editor as moviepy
clip = moviepy.VideoFileClip("myvideo.avi")
clip.write_videofile("myvideo.mp4")

根据MoviePy文档,没有ffmpeg依赖项:
MoviePy依赖于Python模块NumpyimageioDecoratortqdm,这些模块将在MoviePy的安装过程中自动安装。
ImageMagick不是严格要求的,但是如果你想合并文本的话就需要它。它也可以用作GIF的后端,尽管你也可以用MoviePy创建GIF而不用ImageMagick。
PyGame是视频和声音预览所必需的(如果您打算在服务器上使用MoviePy,则不相关,但对于手动高级视频编辑是必不可少的)。
对于高级图像处理,您将需要以下一个或多个软件包:

  • Python映像库(PIL),或者更好的是它的分支Pillow
  • Scipy(用于跟踪、分段等)可用于在未安装PIL和OpenCV的情况下调整视频剪辑的大小。
  • 对于某些高级图像处理可能需要Scikit Image
  • 对于某些高级图像处理,可能需要OpenCV 2.4.6或更新版本(提供cv2包的版本)。
  • Matplotlib
q3aa0525

q3aa05252#

我写了一个快速的程序,可以将一个目录中特定类型的所有视频文件转换为另一种类型,并将它们放在另一个目录中。我必须使用Homebrew安装moviepy才能使它工作,而不是依赖PyCharm的包安装。

import moviepy.editor as moviepy
import os

FROM_EXT    = "mkv"
TO_EXT      = "mp4"
SOURCE_DIR  = "/Volumes/Seagate Media/Movies/MKVs"
DEST_DIR    = "/Volumes/Seagate Media/Movies/MP4s"

for file in os.listdir(SOURCE_DIR):
    if file.lower().endswith(FROM_EXT.lower()):
        from_path   = os.path.join(SOURCE_DIR, file)
        to_path     = os.path.join(DEST_DIR, file.rsplit('.', 1)[0]) + '.' + TO_EXT

        print(f"Converting {from_path} to {to_path}")

        clip = moviepy.VideoFileClip(from_path)
        clip.write_videofile(to_path)

相关问题