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

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

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

ffmpeg官网

文章目录

    • 一、下载安装FFmpeg
    • 二、 安装nginx
    • 三、开始转码

一、下载安装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添加环境变量:

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. 下载编译安装
# 下载  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. 启动
/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

在VLC里面测试下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/23785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果电脑第三方应用程序卸载工具CleanMyMacX4.14

CleanMyMacX,这是一款可以帮助你快速识别并卸载电脑上的多个应用程序的第三方工具,省去了逐个卸载的繁琐步骤。 我们首先要到下载CleanMyMacX, CleanMyMac X全新版下载如下: https://wm.makeding.com/iclk/?zoneid49983 然后&#xff0c…

【项目 计网2】4.4网络模型 4.5协议 4.6网络通信的过程

文章目录 4.4网络模型OSI七层参考模型TCP/IP四层模型(常用)简介四层介绍 4.5协议简介常见协议UDP协议TCP协议IP协议以太网帧协议(MAC地址封装)ARP协议(IP->MAC) 4.6网络通信的过程封装分用 4.4网络模型 …

Stable Diffusion 硬核生存指南:WebUI 中的 GFPGAN

本篇文章聊聊 Stable Diffusion WebUI 中的核心组件,强壮的人脸图像面部画面修复模型 GFPGAN 相关的事情。 写在前面 本篇文章的主角是开源项目 TencentARC/GFPGAN,和上一篇文章《Stable Diffusion 硬核生存指南:WebUI 中的 CodeFormer》提…

k8s存储卷

目录 一、为什么要存储卷?二、emptyDir存储卷三、hostPath存储卷四、 nfs共享存储卷五、PVC 和 PV5.1 PV和PVC之间的相互作用遵循的生命周期5.2 PV 的状态5.3 一个PV从创建到销毁的具体流程 六、静态创建pv和pvc资源由pod运用过程6.1 在NFS主机上创建共享目录&#…

03 制作Ubuntu启动盘

1 软碟通 我是用软碟通制作启动盘。安装软碟通时一定要把虚拟光驱给勾选上,其余两个可以看你心情。 2 镜像文件 我使用清华镜像网站找到的Ubuntu镜像文件。 Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 请自己选择镜像…

K8S系列文章之 使用Kind部署K8S 并发布服务

简单介绍 kind 即 Kubernetes In Docker,顾名思义,就是将 k8s 所需要的所有组件,全部部署在一个docker容器中,是一套开箱即用的 k8s 环境搭建方案。使用 kind 搭建的集群无法在生产中使用,但是如果你只是想在本地简单…

队列中offer,add;poll,remove;peek,element之间的区别

offer和add的区别 offer() 和 add() 都是向队列中加入新项。 一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。 这时新的offer方法就可以起作用了。它不是对调用add()方法抛出一个unchecked异常,而只是得…

初阶C语言——特别详细地介绍函数

系列文章目录 第一章 “C“浒传——初识C语言(更适合初学者体质哦!) 第二章 详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言——特别详细地介绍函数 目录 系列文章目录 前言 一、函数是个什么鬼东西? 二、C语…

css中的bfc是什么?

什么bfc? BFC(Block Formatting Context)块级 格式化 上下文。 BFC就是页面上的一个隔离的独立盒子,容器里面的子元素和外面的元素不会相互影响。 为什么要bfc? bfc是我们去主动触发的,并不是自动就存在的,它是帮助我们解决cs…

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight 2

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

数据库与数据仓库的区别及关系

数据库与数据仓库的区别及关系 数据库数据仓库异同差异联系例子 数据库 数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集…

任务 13、MidJourney种子激发极致创作,绘制震撼连贯画作

13.1 任务概述 通过本次实验任务,学员将深入了解Midjourney种子的概念和重要性,以及种子对生成图像的影响。他们将学会在Midjourney平台中设置种子值并调整其参数,以达到所需的效果。此外,任务还详细介绍了Midjourney V4.0版本中…

openSUSE安装虚拟化 qemu kvm

1) 第一种:图形界面yast安装虚拟化 左下角开始菜单搜索yast 点一下就能安装,是不是很简单呢 2)第二种: 命令行安装 网上关于openSUSE安装qemu kvm的教程比较少,可以搜索centos7 安装qemu kvm的教程,然后…

ZAFUACM - 23.8.5个人赛补题

文章目录 A - Lucky Conversion题意思路代码 B - Constanzes Machine题意思路代码 C - Maximum Median题意思路代码 D - Remove Extra One题意思路代码 E - A Determined Cleanup题意思路代码 F - Minimal k-covering A - Lucky Conversion 原题链接 题意 给出两个只包含“4…

vue-baidu-map-3x 使用记录

在 Vue3 TypeScript 项目中,为了采用 标签组件 的方式,使用百度地图组件,冲浪发现了一个开源库 ovo,很方便!喜欢的朋友记得帮 原作者 点下 star ~ vue-baidu-map-3xbaidu-map的vue3/vue2版本(支持v2.0、v…

《面试1v1》ElasticSearch 和 Lucene

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

DLA 神经网络的极限训练方法:gradient checkpointing

gradient checkpointing 一般来说,训练的过程需要保存中间结果(不管是GPU还是CPU)。前向传播根据输入(bottom_data)计算输出(top_data),后向传播由top_diff计算bottom_diff(如果某个变量打开梯度进行训练的话&#xff…

5个顶级的开源有限元分析软件

每当我参加数值分析课程的教学时,都会回顾有限元方法的基础知识,很自然地就会出现使用哪种软件的问题。 以下讨论基于三个基本考虑: 在实际应用中,很少有人从头开始编写 FEM 代码。商业 FEM 软件通常在某些预定义的情况下非常易于…

Pandas操作Excel

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。 菜鸟教程:https://www.runoob.com/pandas/pandas-tutorial.html 读取Excel pd.read_excel(path,sheet_name,header) path:excel文件路径sheet_name:读取的sheet&#xff0…

3.netty和protobuf

1.ChannelGroup可以免遍历由netty提供,覆盖remove方法即可触发删除channel\ 2.群聊私聊 13.群聊私聊简单原理图 3.netty心跳检测机制,客户端对服务器有没有读写(读,写空闲) //IdleStateHandler(3,5,7,TimeUnite.SECONDS)是netty提供的检测状态的处理器,也加到pipeline,读,写,…