我对 .bat 文件或 ffmpeg 了解不多,最后一个小时在互联网上搜索如何解决我的问题,但没有找到任何东西。
我想制作 .bat 文件,该文件删除视频的音频并将其替换为无音频版本。我已经用我的 .bat 文件和 ffmpeg 创建了一个文件夹,并在上下文菜单中添加了一个选项来打开我的 .bat 文件。
这是我目前的 .bat 文件:
ffmpeg -i %1 -an -vcodec copy %1
但是 ffmpeg 不能覆盖它当前正在读取的文件。如果有人帮助我如何创建一个没有音频的临时文件,然后用临时文件替换输入文件,那就太好了。提前非常感谢!
最佳答案
在 FFmpeg 中静音视频的一种简单方法是
ffmpeg -i input.mp4 -filter:a "volume=0.0" output.mp4
音量 = 0.0 将音频设置为 0我建议使用 Python 进行编码,因为您需要从文件夹中获取所有文件并将它们全部静音。我将分享一个示例代码
这是一个 .bat 文件,你可以写它,当你点击它时它会运行 python 文件
#!/bin/bash
function edit_2x()
{
python file_name.py
TIMEOUT 10
}
文件名.pyimport os
Folder_Path = r'K:\\to_mute\\'
Output_Folder_Path = r'K:\\muted_videos\\'
fileNames = os.listdir(Folder_Path)
for fileName in fileNames:
if 'Done' not in fileName:
print("File Name :"+fileName )
os.system("ffmpeg -i "+fileName+" -filter:a 'volume=0.0' "+fileName);
os.rename(Video_Path+fileNamee,Video_Path+"Done "+fileNamee)
对代码的一个简单解释是,它获取所有文件名并将它们存储在一个列表中,您将获取一个文件并将它们静音并将它们存储在另一个文件夹中,并使用 Done 更新原始文件名,这样就不会再造成混淆。希望它清楚
关于batch-file - ffmpeg 与输出文件相同的输入(需要临时文件但如何?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65586493/