python - 如何在子进程的命令中添加变量名?
问题描述
我需要读取文件夹中的所有视频,然后将每个视频与其原始类型进行比较,计算 PSNR 后,保存 PSNR 文本文件。为此,我使用了以下代码:
subprocess.call(['ffmpeg.exe', '-i', {i}, '-i', {o}, '-lavfi', 'psnr=stats_file=''{n}', '-f', 'null', '-'])
我将输入和输出文件的名称作为变量输入{i}
,{o}
每次可以是不同的视频文件,我还需要保存相关的 PSNR 文本文件,为此我定义了n
(n=psnrmkv.txt')。但它无法生成 psnrmkv.txt。你有什么建议吗?问题是什么?
我编写了以下代码来读取文件夹中的所有 mp4 文件并计算 PSNR:
import subprocess
import os
import numpy as np
import scipy.io as sio
import cv2
os.chdir("E:/mpeg_file/") #change directory to downloads folder
suffix =".mp4" #variable holdinng the .mp4 tag
fnames = os.listdir('.') #looks at all files
# files = [x for x in os.listdir() if x.endswith(".mp4")]
files =[] #an empty array that will hold the names of our mp3 files
i=0
for fname in fnames:
if fname.endswith(suffix):
pname = os.path.abspath(fname)
n="psnr"
n=n+str(i)+".txt"
subprocess.call(['ffmpeg.exe', '-i', pname, '-i', pname, '-lavfi', f'psnr=stats_file={n}', '-f', 'null', '-'])
i=i+1
files.append(pname) #add the mp3 files to our array
print (files)
但它不会产生任何 psnr 文本文件!!你能告诉我有什么问题吗?它完全运行,但我没有任何输出。我还需要添加保存 psnr 文本文件的位置subprocess
。
解决方案
推荐阅读
- php - PHP:如何仅检索特定客户的 Stripe 支付意图
- fonts - 如何使用 nativescript 检查字体大小移动设备
- c++ - 随机数生成器的性能因平台而异
- php - 如何正确修复.htaccess laravel 5.5?
- c++ - 积分转换的运行时检查
- python - 这个python代码中这个POST方法的json请求是否正确?
- python - 为什么我的用于检测图像旋转的卷积模型会为每张图片预测相同的类别?
- swift - 在测试中使用 UserDefaults.standard 的后果是什么?
- html - html中的链接问题
- r - 使用 dplyr 创建一个字符变量,其值取决于先前的变量(它们的名称和值)