1. ffmpeg 把 rtsp 流下载成MP4文件:
ffmpeg -timeout 5000000 -y -i [rtsp地址] -vcodec copy -f mp4 -t 10 E:\test\102.mp4
-timeout 5000000 是过期时间,单位是微秒。因为网络有可能不稳定,连接没有响应,一直没有下载文件,所以这里设置过期时间,如果建立连接后超过5秒没反应就断开连接。
-i 后面指明rtsp视频流地址
-vcodec 视频编码格式,copy 表示不对视频编码做改动,用视频流原来的编码格式。
-f 是文件格式,这里是mp4。
-t 是视频时长,单位是秒。
E:\test\102.mp4 下载生成的文件路径。要确保文件夹路径 E:\test\ 存在。
2. ffmpeg把其他编码格式的MP4文件转换成 H.264(即AVC)编码格式的MP4文件
这么干的目的:MP4文件有多种编码格式。谷歌浏览器上运行HTML的VIDEO标签的时候,谷歌浏览器仅支持 H.264(即AVC)编码格式的MP4文件。所以为了正常播放视频需要对视频文件转换编码格式。
ffmpeg -i D:\ws\ry\junan\input.mp4 -vcodec libx264 D:\ws\ry\junan\output.mp4
-i 后面输入文件路径
-vcodec 是视频编码格式,后面跟着的 libx264 表示要转换成 H.264(即AVC)编码格式。
D:\ws\ry\junan\output.mp4 是要生成的文件路径。要确保文件夹路径存在。
3. ffmpeg 把 rtsp 流下载成MP4文件,并且编码格式转换成 H.264(即AVC)
ffmpeg -timeout 9000000 -y -i [rtsp地址] -vcodec libx264 -f mp4 -t 10 E:\test\102.mp4
其他都和第一条一样
-vodec 这里用 libx264 表明要转换成 H.264(即AVC)格式。
4. ffmpeg 把 HLS 流下载成 MP4 文件,并且编码格式转换操 H.264(即AVC)
ffmpeg -timeout 9000000 -y -i http://192.168.1.47:18807/live.m3u8 -vcodec libx264 -f mp4 -t 10 D:\yourFile.mp4
5. ffmpeg 把 RTSP 流转换成 HLS 流,并放到 Nginx 路径中
ffmpeg -i 【RTSP流地址】 -c:v h264 -flags +cgop -g 30 -hls_time 1 【Nginx 硬盘路径】
-c:v h264 编码格式转换成 H264。
-flags +cgop 指 a closed GOP。GOP 是 Group Of Pictures 的缩写,即一组完整的视频帧,含有I帧,可播放。GOP 分为开放状态和闭合(closed)状态。Closed GOP是指帧间的预测都是在GOP中进行的。而使用open GOP,后一个GOP会参考前一个GOP的信息。
-g 30 设置 GOP 大小为 30。
-hls_time 1 时间长度是 1 秒。默认是 2 秒。