私はGNU/Linuxとpython2.7.3を使用していますが、これは初めてです。メインのPythonプロセスのブロックを回避するためにコマンドをffmpeg
使用するなど、長くインストールされたシステムプロセスを実行しようとしています。Popen()
私はそれを機能させることができません。
私の最初の試みはスレッドを使用することでしたが、グラフィカルインターフェイスが適切に機能しないため、少し複雑です(そして、もっと良い方法が必要だと思います)
それからフォークを試してみましたが、それは戦車でハエを殺すようなものです。
今使っPopen
てみたところ、インターネットでの使い方についての言及がたくさんありましたが、ちゃんと動かしていないと思います。たぶん私は例を誤解しています。
私はもう試した:
##command is ffmpeg like that works ok
p = subprocess.Popen(command, shell=True)
私も試しました:
p = subprocess.Popen(command,stdin=PIPE, shell=True)
通常、エラーまたはその後の動作が発生し、コマンドが終了してからメインプログラムが再開します。私は何が欠けていますか?
コマンド部分:
global vidSource
global srtSource
global done
size = "3"
font = "/usr/share/fonts/truetype/freefont/FreeSerif.ttf"
command = 'mencoder ' + '"' + vidSource + '"' + " -oac copy -ovc lavc -lavdopts threads=2 -sub " + "'" + srtSource + "'" + " -subcp -utf8 -font "+ '"'+ font+ '"' + " -subfont-text-scale " + size + " -o " + '"' + vidSource + '2'+'"'