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里面测试下:

相关推荐
川冰ICE10 小时前
⑮ AI音乐与音频:工具详解与创作流程
人工智能·音视频
oort12311 小时前
VLStream:全开源决策式AI视频平台,赋能企业构建自主可控、降本增效的智能视觉应用介绍
大数据·开发语言·人工智能·开源·音视频·数据库架构
wangchensong12 小时前
[特殊字符] 用了一段时间 LockBox,说说我的真实感受
音视频·pdf加密·视频加密
Hommy8814 小时前
【剪映小助手】音频处理接口
前端·音视频·剪映小助手·视频剪辑自动化
難釋懷14 小时前
Nginx-CA 签名
服务器·nginx·ssl
若兰幽竹14 小时前
【HarmonyOS 6.1 全场景实战】《灵犀厨房》实战(二十二) | 多媒体 | AVPlayer嵌入教学视频——让智慧屏真正“活”起来
音视频·华为鸿蒙系统·harmonyos6.1.0·灵犀厨房·harmonyos6.1
chenying99817914 小时前
扩散模型语音克隆:参考音频注入的五种方式
人工智能·音视频·语音合成
2023自学中16 小时前
imx6ull开发板 移植 ffmpeg 4.2.11 + x264 视频编码库
linux·ffmpeg·音视频·嵌入式·开发板
梅孔立17 小时前
解决Nginx缓存不写入响应体问题:浏览器强制不缓存配置教程
java·开发语言·nginx·spring
qq_3564086617 小时前
Kubernetes Loki 日志收集系统部署文档 (读写分离模式 + Ceph S3 + Nginx 日志分离)
ceph·nginx·kubernetes