监控视频流项目初步接触体验(三)
本次体验记录,连着上面两篇,是完整的一个过程。同样的,操作系统也是centos 6.9。
一、转码为RTMP
ffmpeg -rtsp_transport tcp -i "rtsp://user:password@ip:port/Streaming/Channels/101?transportmode=unicast&profile=Profile_1" -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -r 25 -b:v 500k -s 640*480 -f flv rtmp://192.168.1.120:1935/myapp/test1
注意几点:
1、 -rtsp_transport tcp:强制使用tcp进行通信
2、user、password、ip、port请格据实际请况,更换成rtsp视频源的用户名、密码、IP地址以及端口号
3、192.168.1.120是我的nginx所在服务器的IP地址,请不要原样copy
执行完这一句命令后,为了测试,可以在VLC中打开rtmp://192.168.1.120:1935/myapp/test1,便可以进行观看。
二、转码为HLS
ffmpeg -rtsp_transport tcp -i "rtsp://user:password@ip:port/Streaming/Channels/101?transportmode=unicast&profile=Profile_1" -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 160*128 -q 10 -f flv rtmp://192.168.1.120:1935/hls/test2
除了和上面几点需要注意的以外,有两点要了解
1、配置文件中hls_path为/tmp/hls,所以流产生的临时文件都在这个路径下。
2、可以用VLC对hls视频源进行播放,也可以在html5下进行播放,例如:
<video controls> <source src="http://192.168.1.120:8080/hls/test2.m3u8"></source> </video>
上面转码后的这视频源地址就是:http://192.168.1.120:8080/hls/test2.m3u8。但并不是所有的浏览器都支持m3u8(比如PC端的chrome就不支持)
好了,到这里为止,linux部分的尝试第一段落就结束了。但本系列的文章不会结束,因为还有各种相关的情况要进行试验,都会及时一一记录。