Pythonからffmpegを実行して、妥当な出力を取得しようとしています。ffmpegのログレベルがどのように設定されているかは関係ありません。Popen.communicate()から取得する出力はエラー1のみです。ただし、内容はエラーではありません。同じコードを実行して他のコマンド(ls)を実行しようとしましたが、out出力とerr出力の両方で問題ないようです。
こことGoogleをチェックしましたが、残念ながら何も見つかりませんでした。ほとんどの例では、サブプロセスではなく、OSまたはコマンドモジュールを使用しています。
これは私のテストコードです:
command = [
'ffmpeg',
'-v', 'debug',
'-i', '1.mov',
'-vcodec', 'libx264',
'-profile:v', 'high',
'-preset', 'slower',
'-b:v', '1000k',
'-vf', 'scale=-1:720',
'-threads', '0',
'-acodec', 'libfdk_aac',
'-b:a', '192k',
'-y',
'2.mp4',
]
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
f = open('out.log', 'w')
f.write(out)
f.close()
f = open('error.log', 'w')
f.write(err)
f.close()
このようなものを見たことがありますか?私は何か間違いをしていますか、それともffmpegにバグがありますか?