Обмен данными между ffmpeg и видеоплеером - PullRequest
0 голосов
/ 12 марта 2012

Я использую ffmpeg в качестве прокси для воспроизведения потоков RTSP в VLC (потому что кажется, что VLC не слишком хорошо работает с потоками RTSP на основе TCP). В то время как в Linux я делаю это, создавая файл FIFO и используя его как вывод для ffmpeg, в Windows я не могу этого сделать, потому что os.mkfifo () не работает в этой ОС. Поэтому мне нужно найти способ запустить ffmpeg с помощью subprocess.Popen () и отправить преобразованные данные в VLC в режиме реального времени (я использую привязки VLC для Python).

Я пытался установить вывод ffmpeg на стандартный вывод (ffmpeg.exe -y -i rtsp: //fms30.mediadirect.ro/live/utv/utv? Tcp -acodec libmp3lame -ar 44100 -vodec copy -f flv -) перехватывает этот вывод и отправляет его классу SimpleHTTPServer с использованием сокетов (ну, я не уверен, что этот подход был хорошей идеей). Я также пытался использовать каналы (с win32pipe.CreateNamedPipe), но мне все равно не повезло.

Как я мог это сделать? Или почему VLC не хочет воспроизводить этот поток (rtsp: //fms30.mediadirect.ro/live/utv/utv), а ffmpeg может? Это фактический код, используемый в Linux, который не работает в Windows: http://pastebin.com/vqX1Edwg

...