当我尝试将 VLC Python 绑定与 ffmpeg 连接时(请参阅Exchange data between ffmpeg and video player),我认为让 ffmpeg 将 RTSP 流输出到 STDOUT 并用Python 脚本“捕获”它并通过 HTTP 发送将是好主意。因此,我使用 SimpleHTTPServer 制作了一个小型 HTTP 服务器,从中我从 FFMpeg 获取 STDIN 并将其“输出”到网络。
这是我正在使用的语法:
ffmpeg.exe -y -i rtsp://fms30.mediadirect.ro/live/utv/utv?tcp -acodec copy -vcodec copy -f flv - | \Python27\python.exe -u stdin2http.py
这似乎可行,我可以访问流,但不能访问视频,也不能播放音频。我尝试在 Windows 上使用 VLC,在 Linux 上使用 VLC 和 MPlayer,但没有成功。简单地运行
ffmpeg.exe -y -i rtsp://fms30.mediadirect.ro/live/utv/utv?tcp -acodec copy -vcodec copy -f flv - | vlc.exe -
完美运行。所以问题似乎出在我将数据从标准输入写入网络服务器时。我做错了什么?