我希望能够在Linux操作系统下将来自IP摄像机(http://xx.yy.zz.tt:8080/video.cgi)的MJPEG流转换为FLV或MP4流,以便用户可以使用基于Web的Flash播放器(如Flowplayer)播放文件。 我发现了VLC,但我无法确定确切的命令行字符串。我还需要HTTP身份验证功能,因为IP摄像机访问是受密码保护的。 如果有任何非VLC解决方案也很感兴趣(例如ffmpeg)。
看起来VLC可以进行HTTP身份验证。 http://www.videolan.org/doc/play-howto/en/ch04.html 我相信它可以输出到flv格式。 通常情况下,我会使用GUI查看参数,然后进行调整。没有什么魔法公式,伙计。
看起来你可以通过类似以下方式将其输出到flv格式:
:sout=#transcode{vcodec=h264,vb=0,scale=0,acodec=mp3,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:8080/}
这里的内容提到,FFmpeg可以使用像http://user:password@host:port/address这样的URL。
在处理IP摄像头时,我以前使用过Xuggler,它们使用ffmpeg进行转码工作,因此这应该是可能的。如果我是你,我会使用以下命令行来检查是否支持。
ffmpeg -i http://xx.yy.zz.tt:8080/video.cgi -vcodec flv -qscale 1 -an output.flv
请注意保留HTML标记。
将用户名和密码嵌入同一个链接中,而不是使用 http://xx.yy.zz.tt:8080/video.cgi
,请使用此链接:http://user:pass@xx.yy.zz.tt:8080/video.cgi