2014-11-12 4 views
0

У меня есть конвейер ffmpeg в сценарии оболочки, который запускается как подпроцесс в Python. По какой-то причине, когда Python запускает скрипт, мои потоки видео отлично, а затем зависают примерно через шесть минут каждый раз. После того, как она замерзает, если бы я попытался запустить скрипт вручную, он дает мне эту ошибку:Почему мой подпроцесс потока ffmpeg замерзает через 6 минут?

Invalid MIT-MAGIC-COOKIE-1 keyxcb_connection_has_error() returned true Failed to symlink /root/.pulse/65f3ded611649c6dcf9ebae20000046d-runtime to /tmp/pulse-PKdhtXMmr18n: Input/output error [alsa @ 0x4b2f0] cannot open audio device hw:0,0 (Device or resource busy) hw:0,0: Input/output error

Однако, если я перезагрузить и запустить скрипт вручную, видео аудио & будет играть нормально до бесконечности.

Кто-нибудь знает, почему это происходит? Благодарю.

Вот мой pipline.sh файл:

sudo ffmpeg -f video4linux2 -video_size 640x480 -framerate 30 -input_format yuyv422 -i /dev/video7 -f alsa -i hw:0,0 -map 0:0 -map 1:0 -b:v 120k -bufsize 120k -vcodec libx264 -preset ultrafast -crf 28 -acodec aac -strict -2 -f flv -metadata streamName= StreamName tcp://71.192.1.22 

И это подпроцесс я использую в Python:

subprocess.Popen("sudo ./ffmpeg_script.sh", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 

ответ

1

Мой догадка: сценарий не дренирования stdout достаточно быстро, и он заполняет вывод отладки до такой степени, что в stdout ffmpeg заканчивается буферное пространство, и он замерзает.

+0

Спасибо. Я просматриваю документы python для того, чтобы слить его, когда он заполняется. Любая идея, как я буду заниматься этим? – nonlinearmind

+0

Вы действительно заботитесь об этих данных? Если это так, обработайте его, когда он входит, или установите stdout в tempfile, который вы сможете проанализировать позже на досуге. Если нет, не захватывайте его вообще. –

+0

Спасибо за помощь. Мне не нужны данные. Сработало с использованием stdout = None, stderr = None. Сначала не работал, потому что я не закрывал «Нет». – nonlinearmind

Смежные вопросы