在ffmpeg和视频播放器之间交换数据

时间:2012-03-12 08:28:09

标签: python streaming ffmpeg rtsp vlc

我正在使用ffmpeg作为在VLC中播放RTSP流的代理(因为看起来VLC对基于TCP的RTSP流不能很好地工作)。在Linux中我通过创建FIFO文件并将其用作ffmpeg的输出来实现这一点,在Windows中我不能这样做,因为os.mkfifo()在此操作系统下不起作用。所以我必须找到一种方法来使用subprocess.Popen()启动ffmpeg并将其转换后的数据实时发送到VLC(我正在使用Python的VLC绑定)。

我试图将ffmpeg的输出设置为stdout(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

0 个答案:

没有答案