FFMpeg批量转换视频文件挂起

2024-04-19 08:34:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些.avi文件包含在h264编码的视频,我想更改为.mp4,如果需要的话更改速率。您可以在下面看到用于转换的代码。我的问题是,当我试图转换所有文件时,ffmpeg会挂起,并且它挂起的文件会不时地更改,我想知道为什么?下面的代码是ffmpeg挂起的输出。我运行的是Windows10,Python2.7。

import subprocess
import os

def convert(fileName):
    sourceFile = fileName
    print sourceFile.split('.')
    targetFile = fileName.split('.')[0] + ".mp4"
    subprocess.call(['ffmpeg', '-y', '-i', sourceFile, '-r',
         '30000/1001', '-b:a', '2M', '-bt', '4M', '-vcodec',
          'libx264', '-pass', '1', '-coder', '0', '-bf', '0',
           '-flags', '-loop', '-wpredp', '0', '-an', targetFile])



# Set the directory you want to start from
def convertBatch(rootDir = '.'):
    for dirName, subdirList, fileList in os.walk(rootDir):
        print('Found directory: %s' % dirName)

        for fname in fileList:
            if fname.endswith(".avi"):
                convert('%s/%s' % (dirName,fname))
                #os.remove('%s/%s' % (dirName,fname))


convertBatch("F:\\data\\mp4")

^{pr2}$

Tags: 文件代码importconvertosdeffilenamefname
1条回答
网友
1楼 · 发布于 2024-04-19 08:34:55

删除ffmpeg标志-pass 1

经过反复试验,我发现问题出在ffmpeg标志-pass 1,我想(没有做过研究)是因为ffmpeg会将统计数据写入同一个文件。那会引起冲突吗?在

相关问题 更多 >