【rtsp】rtsp地址转换到网页踩坑记录

本文介绍了如何通过ffmpeg将RTSP摄像头流转换为mpegts格式,并利用jsmpeg在网页上实现播放。首先确保RTSP地址可用,然后使用ffmpeg进行转换,参数包括指定输入地址、输出格式、解码格式和帧率。接着,通过ws服务建立WebSocket连接,前端使用jsmpeg播放器接收并显示视频流。调试过程中需检查ffmpeg推送、websocket服务、前端接收等环节是否正常。
摘要由CSDN通过智能技术生成

前言

  • 最近整个rtsp的摄像头显示到网页上,百度一看这个还有点麻烦。

ffmpeg

  • http://ffmpeg.org/ffmpeg.html
  • 首先需要确定你的地址可以打开,建议下个vlc打开视频地址,如果能打开就ok。
  • 注意:vlc默认是udp,在偏好设置中可以设置tcp,有些rtsp的地址必须是tcp才可以看见。
  • 确认完地址后我们还需要ffmpeg这个神器。
  • 一般来说,这个exe文件会写入环境变量,当然放到目录里执行也可以。
  • 这玩意的参数比较复杂,而且功能特别多,建议对着官网和github查看。
  • 对于rtsp的转换,如果是需要jsmpeg播放器打开的,需要转成mpegts格式如下:
ffmpeg -i rtsp://192.168.168.22 -f mpegts -codec:v mpeg1video -bf 0 -codec:a mp2 -r 30 http:// localhost:8081/1234/640/480 / 
  • 解释下参数,-i就是源地址不用说了
  • -f就是转换的格式,如果给nginx转换,可以把rtsp转换为rtmp丢给它,如果用jsmpeg,需要转换为mpegts格式
  • -codec解码格式,mpegts格式要mpeg1video格式,而声音需要mp2格式。
  • -r 就是帧率。
  • 最后那个是输出的地址,一般为ws的流地址。
  • 如果是使用tcp的需要加上-rtsp_transport tcp。

ws转换

  • 下载jsmpeg时,内附了个ws服务的js文件,安装完依赖后,使用node启动它。这样ws服务就建立了,其中一个端口为ffmpeg的端口,另一个端口为+secret为websocket端口

JSMEPG

  • https://github.com/phoboslab/jsmpeg
  • 这个是前端播放器,可以通过websocket接收ffmpeg转换推送的mpegts格式数据,通过canvas实时显示出来。用法也非常简单,player等于new 一下, player.play() pause之类控制。

调试技巧

  • 确定你的地址有效,可以打开。
  • 确定ffmpeg在命令行输入后可以正常推送流并显示帧数。
  • 确定websocket服务正常,前端连接刷新可以正常提示。
  • 确定前端收到ffmpeg推送的码流,点击101响应码升级ws可以看见推送码流,如果是持续在收说明ok。
  • 确定转码格式正确,是jsmpeg可以识别的格式(当然你用别的前端播放器支持别的格式也可以)。
  • 上述demo和工具已上传csdn,0积分下载:https://download.csdn.net/download/yehuozhili/13117797
FFmpeg是一款强大的多媒体处理工具,可以用来完成各种视频音频处理任务,其中包括将RTSP换成HLSRTSP(实时媒体传输协议)是一种用于实时数据传输的网络协议,常用于视频的传输。HLS(HTTP Live Streaming)是一种媒体传输协议,可以将视频切分为多个小文件,并通过HTTP协议分段传输。 要实现RTSPHLS,首先需要安装FFmpeg工具。在安装完毕后,可以使用以下命令行参数来进行换: ```shell ffmpeg -i rtsp://source_url -c:v copy -c:a copy -hls_segment_type mpegts -hls_time 10 -hls_list_size 0 -f hls output.m3u8 ``` 上述命令中,使用`-i`参数指定RTSP输入源的URL,`-c:v copy`和`-c:a copy`表示不对视频和音频进行编码,直接复制到HLS输出中。 `-hls_segment_type mpegts`指定输出的HLS段文件类型为`mpegts`,`-hls_time 10`表示每个HLS段的时长为10秒,`-hls_list_size 0`表示不限制目标播放列表的最大文件数量。 最后使用`-f hls`参数指定输出格式为HLS,并指定输出文件名为`output.m3u8`。 执行上述命令后,FFmpeg会将RTSP换成HLS。输出的`output.m3u8`文件是一个HLS播放列表文件,其中包含了各个切片文件的URL地址。 通过将`output.m3u8`和切片文件(.ts文件)部署在HTTP服务器上,即可使用支持HLS协议的播放器进行在线播放。 需要注意的是,换过程中可能会出现一些兼容性或格式方面的问题。在使用FFmpeg进行RTSPHLS时,可以根据具体需求调整命令行参数以达到最佳效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

业火之理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值