JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

ffmpeg播放及回放rtsp视频流 ffmpeg 回放

wys521 2024-10-05 04:18:32 精选教程 29 ℃ 0 评论

一、linux安装ffmpeg

1. yum源安装yasm汇编编译器

yum -y install yasm

1.1 检查是否安装成功

yasm --version

2. 下载安装ffmpeg

2.1 两种下载方式都可

2.1.1 官网下载压缩包ffmpeg官网下载

2.1.2 linux服务器下载ffmpeg所有版本下载

wget http://www.ffmpeg.org/releases/ffmpeg-5.0.1.tar.gz

2.2 解压并安装

2.2.1 找到下载的目录并进行解压

tar -xvf ffmpeg-5.0.1.tar.gz

2.2.2 进入解压目录并进行编译安装

prefix: 指定安装路径

cd ffmpeg-5.0.1

./configure --prefix=/home/ffmpeg

make

make install

相关学习资料推荐,点击下方链接免费报名,先码住不迷路~】

音视频免费学习地址:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发

【免费分享】音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击788280672加群免费领取~

2.3 配置环境变量

vi /etc/profile

输入i进入编辑模式,在最后添加

export FFMPEG_HOME=/home/ffmpeg
export PATH=$PATH:$FFMPEG_HOME/bin

Esc键退出编辑模式,输入:wq保存

使环境变量生效

source /etc/profile

2.4 检查是否安装成功

ffmpeg -version

二、linux安装pm2

1. 下载安装node

官网下载nodejs官网下载

2. 上传至linux并解压

tar -xvf node-v16.15.1-linux-x64.tar.xz
tar -xvf node-v16.15.1-linux-x64.tar
mv node-v16.15.1-linux-x64 node

2.1 建立软连接

ln -s /home/node/bin/node /usr/local/bin

ln -s /home/node/bin/npm /usr/local/bin

2.2 配置环境变量

vi /etc/profile

输入i进入编辑模式,在最后添加

export NODE_HOME=/home/node
export PATH=$PATH:$NODE_HOME/bin

Esc键退出编辑模式,输入:wq保存

使环境变量生效

source /etc/profile

2.3 检查是否安装成功

node -v

npm -v

3. npm安装pm2

npm install pm2 -g

查看版本号

pm2 -v

三、后端nodejs代码

百度网盘链接:nodejs-java
提取码:flti

3. 下载后上传至linux并解压

unzip flvjs-master.zip

注意修改ffmpeg安装路径及websocket监听的端口号

3.1 pm2启动nodejs

进入ffmpeg解压目录启动

pm2 start index.js

查看启动列表

pm2 list

四、前端vue代码

百度网盘链接:flvjs-vue
提取码:vxkr

4. 修改地址

将vue项目打包上传至linux服务器

五、nginx代理websocket

修改nginx/conf/nginx.conf文件

server {
        listen       52000;
        server_name  localhost;
        
		# 前端代理
        location / {
            root   /home/frontend/dist;
            index  index.html 	index.htm;
            try_files $uri $uri/ /index.html;
        }

		# 后端代理
		location /api {
	    	proxy_read_timeout 30s;
        	proxy_set_header Host $host;
	    	proxy_set_header X-Real-IP $remote_addr;
        	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	    	proxy_set_header Upgrade $http_upgrade;
	    	proxy_set_header Connection "upgrade";
	    	proxy_pass http://localhost:52001;
		}
		
		# websocket代理
		location /rtsp {
      		proxy_set_header Host $http_host;
      		proxy_set_header X-Real-IP $remote_addr;
      		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      		proxy_set_header Upgrade $http_upgrade;
      		proxy_set_header Connection "upgrade";
      		proxy_pass http://localhost:52100;
		}
        
        error_page  404              /index.html;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
	}

进入nginx/bin目录下启动nginx

./nginx

访问nginx代理地址localhost:52000即可播放视频

其原理是后端用ffmpeg将rtsp视频流转换为flv,然后通过websocket传输flv视频流,然后前端通过websocket获取到视频流后,使用flvjs对视频流再一次处理并进行播放,这是一套无插件无flash免费的视频直播解决方案

访问nginx代理地址localhost:52000即可播放视频

其原理是后端用ffmpeg将rtsp视频流转换为flv,然后通过websocket传输flv视频流,然后前端通过websocket获取到视频流后,使用flvjs对视频流再一次处理并进行播放,这是一套无插件无flash免费的视频直播解决方案


原文链接:https://blog.csdn.net/m0_49419441/article/details/125408131

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表