2012-04-07 18 views
7

İzleyici kullanarak bir akışı python ile kaydetmeye ve dönüştürmeye çalışıyorum.Arka Plan Süreç altişlemi. Boru ile Açın

Python
arecord -B 5000 -f dat | lame -m j -q 5 -V 2 - test.mp3 & 

Ben subprocess.Popen ile bu çalıştı: kabuğunda

bu komut az ya da çok benzer

reccmd = ["arecord", "-B", "5000", "-f", "dat"] 
mp3cmd = ["lame", "-m", "j", "-q", "5", "-V", "2", "-", "test.mp3"] 
p = subprocess.Popen(reccmd, stdout=subprocess.PIPE) 
p2 = subprocess.Popen(mp3cmd, stdin=p.stdout) 
p2.communicate() 

Ama eklemeyi bilmiyorum kodunda benzer "&" falan bir

killall arecord komutla kaydı durdurmak mümkün

cevap

9

Ana işlemlerde ana Python işleminin engellenmesini istemiyorsanız, p2.communicate() numaralı telefonu aramayın. subprocess.Popen() çağrıları engellenmez.

+1

Çok teşekkür ederim. Bir çıkış yolu bulmaya harcanan saatler ve bazen cevap sadece bu kadar kolay –