我正在将所有视频文件转换为 WebM,以大大减少硬盘空间的使用量。为此,我使用程序“ffmpeg”,它需要指定输入和输出文件。由于转换过程需要很长时间,我希望昼夜不停地对视频文件夹中的每个视频文件运行它,这样我就不必自己手动执行了。
通过谷歌搜索,我找到了实现此目的的方法,但输出将是一个大文件。有人能解释一下如何自动将“video1.avi”转换为“video1.webm”,将“video2.avi”转换为“video2.webm”等等吗?
答案1
您可以使用bash 循环- 基本结构如下
for file in *.avi; do ffmpeg -i "$file" "${file%.avi}".webm; done
ffmpeg
您可以根据需要添加任何其他命令行选项。
答案2
下面是完成该作业的 Python 脚本:
#!/usr/bin/env python3
import os
import subprocess
sourcedir = "/path/to/sourcedirectory"
for file in os.listdir(sourcedir):
name = file[:file.rfind(".")]
subprocess.call(["fmpeg", "-i", sourcedir+"/"+name+".avi", sourcedir+"/"+name+".webm"])
通过使用 subproces.call(),脚本只有在上一次转换完成后才会继续进行下一次转换。
使用方法:
将脚本复制到一个空的文本文件中,设置文件的源目录,另存为convert.py
并通过命令运行
python3 /path/to/convert.py
答案3
您也可以使用我的免费应用程序。它叫做媒体转换器它是 ffmpeg 的简单前端。如果需要,您必须使用大部分选项,然后拖放所有需要转换的文件并选择适当的选项。输出文件的命名是自动完成的。您必须从下面的链接下载它,因为 Ubuntu 软件中心的那个太旧了。我希望你喜欢它。 http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html