ffmpeg + nginx 实现rtsp视频流转m3u8视频流,转码推流(linux)

FFmpeg即是一款音视频编解码工具,同时也是一组音视频编码开发套件,作为编码开发套件,它为开发者提供了丰富的音视频处理的调用接口。

FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种多彩格式转换、多种采样率转换、多种码率转换等;FFmpeg框架提供了多种丰富的插件模块,包含封装与解封装的插件、编码与解码的插件等。同时也可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。

ffmpeg官网

文章目录

一、下载安装FFmpeg

  1. 下载(自定义版本:http://www.ffmpeg.org/releases/)

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

  1. 解压

tar -zxvf ffmpeg-5.1.tar.gz

  1. 编译安装(耗时较长)
    /home/ffmpeg为自己指定的安装目录

cd ffmpeg-5.1

./configure --prefix=/home/ffmpeg

make && make install

  1. 配置环境变量(方便在任意地方使用)

vi /etc/profile

在最后PATH添加环境变量:

java 复制代码
export PATH=$PATH:$JAVA_HOME/bin:/home/ffmpeg/bin

source /ect/profile

  1. 验证是否正确安装

ffmpeg -version

二、 安装nginx

1.安装依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

  1. 下载编译安装
java 复制代码
# 下载  
 wget http://nginx.org/download/nginx-1.21.5.tar.gz
 
# 解压缩
tar -zxvf nginx-1.21.5.tar.gz
cd nginx-1.21.5/
 
# 执行配置并加载ssl模块
./configure --prefix=/usr/local/nginx --with-http_ssl_module
 
# 编译安装(默认安装在/usr/local/nginx)
make
make install
  1. 启动
java 复制代码
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 
 
# 进入:/usr/local/nginx/sbin
1 启动 ./nginx  
2 停止 ./nginx -s stop
3 重启 ./nginx -s reload

4.配置nginx(外网服务器记得开端口号,并重启nginx与防火墙)

java 复制代码
   	server {
		listen       82;
        location / {
            types{
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }

            root /home/ffmpeg/video/; #root后的路径改为转码后的视频文件夹路径
            add_header Cache-Control no-cache;
            add_header Access-Control-Allow-Origin *;
        }
	}

三、开始转码

nohup ffmpeg -i 替换为rtsp流地址 -c copy -y /home/ffmpeg/video/AK_PHAROS1_000003/1ZNBJ4800C006B/video.m3u8 2>/dev/null 2>&1 &

说明:
第一处加粗地方改为你的RTSP地址,保证能正常播放(可以使用vlc工具测试)
第二处为转码之后视频流存放的位置路径
PS:该命令为后台运行,如果要前台运行去掉开头的nohup 和末尾的 2>/dev/null 2>&1 &


转码成功之后的视频,通过nginx去访问,按照以上方式执行结果播放地址是:

http://IP地址:82/AK_PHAROS1_000003/1ZNBJ4800C006B/video.m3u8

在VLC里面测试下:

相关推荐
烬羽44 分钟前
Dockerfile 是"做奶茶的配方"?用 todos 全栈项目看懂 Docker 构建与发布
nginx·docker·nestjs
阿图灵1 小时前
OpenCV 实用技巧三连:视频转图片、图片转视频、Pillow 与 OpenCV 互转
图像处理·python·opencv·计算机视觉·音视频·pillow
meilindehuzi_a1 小时前
从浏览器输入 URL 到页面显示:DNS、Nginx、后端与 CDN 全链路解析
运维·nginx
SEONIB_Explorer2 小时前
VEONIB 电商 UGC 视频自动化生产实战指南
人工智能·自动化·音视频·跨境电商·视频制作·veonib
美狐美颜SDK开放平台2 小时前
直播APP开发技术详解:视频美颜SDK在人脸识别、美型算法与渲染优化中的应用
人工智能·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
NGINX开源社区2 小时前
使用 F5 NGINX Gateway Fabric 实现 AI 交付标准化
nginx·gateway·fabric
禹亮科技2 小时前
110㎡纵深长桌会议室音视频工程方案复盘|上海制药企业精装场景无改造亿联+耳目达落地实践
音视频·视频会议解决方案
乐橙开放平台17 小时前
养老 SaaS 笔记:setMessageCallback 事件桥接 + msgType 映射 P0/P1,先 ACK 再分流值班流
笔记·物联网·音视频·智能家居
H03111698517 小时前
关于当前主流知识库工具在分类整理学习资料场景下的选用参考
人工智能·信息可视化·音视频
tedcloud12318 小时前
Awesome DSH Plugin 怎么用?给 DeepSeek Harness 搭建自己的插件生态
大数据·linux·服务器·人工智能·音视频