FFmpeg即是一款音视频编解码工具,同时也是一组音视频编码开发套件,作为编码开发套件,它为开发者提供了丰富的音视频处理的调用接口。
FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种多彩格式转换、多种采样率转换、多种码率转换等;FFmpeg框架提供了多种丰富的插件模块,包含封装与解封装的插件、编码与解码的插件等。同时也可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
ffmpeg官网
一、下载安装FFmpeg
- 下载(自定义版本:http://www.ffmpeg.org/releases/)
wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz
- 解压
tar -zxvf ffmpeg-5.1.tar.gz
- 编译安装(耗时较长)
/home/ffmpeg为自己指定的安装目录
cd ffmpeg-5.1
./configure --prefix=/home/ffmpeg
make && make install
- 配置环境变量(方便在任意地方使用)
vi /etc/profile
在最后PATH添加环境变量:
export PATH=$PATH:$JAVA_HOME/bin:/home/ffmpeg/bin
source /ect/profile
- 验证是否正确安装
ffmpeg -version
二、 安装nginx
1.安装依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
- 下载编译安装
# 下载
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
- 启动
/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与防火墙)
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文章来源:https://www.toymoban.com/news/detail-701478.html
在VLC里面测试下:
文章来源地址https://www.toymoban.com/news/detail-701478.html
到了这里,关于ffmpeg + nginx 实现rtsp视频流转m3u8视频流,转码推流(linux)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!