如何解决FFmpeg输出相同的文件名,但不带python扩展名
我对Python有点陌生,但我设法使这段代码将多个视频文件从一个文件夹编码为H265,所有输出名称都可以正常使用。
实际上,输出名称将旧文件扩展名保留为新的文件扩展名,例如“ MyMovie.mov.mp4”,我希望将其命名为“ MyMovie.mp4”,是否有任何方法可以从中排除原始文件扩展名输出文件?
import os,sys,re
input_folder= '/content/drive/My Drive/Videos'
output_folder= '/content/drive/My Drive/Videos/X265'
quality_setting = '30'
file_type = 'mp4
my_suffixes = (".mp4",".mov",".mkv",".avi",".ts",".flv",".webm",".wmv",".mpg",".m4v",".f4v")
from pathlib import Path
Path(output_folder).mkdir(parents=True,exist_ok=True)
for filename in os.listdir(my_folder):
if (filename.endswith(my_suffixes)):
cmd = !ffmpeg -v quiet -stats -hwaccel cuvid -i "$input_folder/{filename}" -Metadata comment="X265-QF$quality_setting-AAC" -c:v hevc_nvenc -preset:v slow -rc vbr -cq $quality_setting -c:a aac -b:a 160k "$output_folder/{filename}.$file_type"
Ps:此代码在Google Colab上使用,这就是为什么我需要在python中使用它。
解决方法
在for循环中,检查文件名是否以上面列出的扩展名之一结尾。因此,文件名包含类似output.mp4
的内容,然后在cmd
中将.$file_type
添加到设置为.mp4
的命令末尾。我认为您应该删除最后一部分,以便仅将扩展名包含在文件名中。
我找到了一种使用rpartition削减文件扩展名的方法
cmd = !ffmpeg -v quiet -stats -hwaccel cuvid -i "$input_folder/{filename}" -metadata comment="X265-QF$quality_setting-AAC" -c:v hevc_nvenc -preset:v slow -rc vbr -cq $quality_setting -c:a aac -b:a 160k "$output_folder/{filename.rpartition('.')[0]}.$file_type"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。