使用java+ffmpeg+nginx-http-flv将海康rtsp视频流转http-flv,使Web可以无插件播放

    技术2022-07-12  77

    最近公司项目需要将海康的预览和回放流在web上播放,由于rtmp年底flash不支持播放了,rtsp在Web不能直接播放,所以现在的思路是通过ffmpeg将rtsp流转为http-flv流,以推流的形式推给前端,前端采用flv.js播放。

    首先安装ffmpeg,安装教程百度,谷歌一大堆。

    配置好ffmpeg的环境变量。

    安装已经编译好的nginx+nginx-http-flv服务器。博主有已经搭建好的nginx需要的自行下载。

    下载解压nginx后,启动nginx。

    ffmpeg命令:

    转码命令实例(预览):ffmpeg  -rtsp_transport tcp -i “rtsp://admin:lzm12345@192.168.1.214/h264/ch1/main/av_stream” -vcodec copy -acodec copy -f flv “rtmp://localhost:1935/live/room”

    转码命令实例(回放):ffmpeg -rtsp_transport tcp -i “rtsp://admin:lzm12345@192.168.1.217:554/Streaming/tracks/201?starttime=20200628t000000z&endtime=20200628t000100z” -vcodec copy -acodec copy -f flv “rtmp://localhost:1935/live/rooms”

    在这里重点讲一下海康摄像机回放的RTSP取流格式:

     

     

    Ip是指超脑IP,端口不出意外是554,通道号如下图所示的话应填201

     

    打开CMD,输入ffmpeg命令。

    rtmp播放地址:rtmp://localhost:1935/live/room

    http-flv播放地址:http://localhost:8080/live?port=1935&app=live&stream=room

    地址中的room可以自行修改,多路推流只需要更改不同的room就好。

    java代码只需要调用Process,运行ffmpeg命令即可。

     

    Processed: 0.015, SQL: 9