1

動画ファイルの情報を取得するために、python の subprocess.popen を使用しています。

output = Popen('ffmpeg -i "'+avifile+'" -dframes 0 -vframes 0', 
    executable="/bin/bash", stdout=PIPE, stderr=STDOUT,
    shell=True).communicate()[0]

問題は、何かがあるはずだとわかっているときに、実行するたびに出力変数が空の文字列になることです。手動で ffmpeg を正常に実行できます。

パイプとリダイレクトに問題があるのではないかと考えています。誰かがこれを修正できるかどうか疑問に思っていました。

4

3 に答える 3

0

変数 output を video_output に変更したところ、何らかの理由で機能しました。理由はまったくありません。

于 2013-05-20T05:49:04.287 に答える
0

結合された stdout/stderr を文字列として読み取り、ゼロ以外のリターン ステータスで例外を取得するには:

from subprocess import STDOUT, check_output as qx

output = qx(['ffmpeg', '-i', avifile] + '-dframes 0 -vframes 0'.split(),
            stderr=STDOUT)

shell=True必要な場合以外は使用しないでください。

于 2013-05-20T05:36:07.983 に答える