当前位置: 首页 > news >正文

ffmpeg-webrtc(metartc)给ffmpeg添加webrtc协议

这个是使用metrtc的库为ffmpeg添加webrtc传输协议,目前国内还有一个这样的开源项目,是杨成立大佬,大师兄他们在做,不过wili页面维护的不好,新手不知道如何使用,我专门对它做过介绍,另一篇博文:ubuntu22.10 ffmpeg-webrtc推拉流srs环境搭建
后者目前还不支持whep(应该在开发中),因此推荐使用metartc的库。
首选它有三个第三方库,先编译这三个库。

1.metartc6
2.srtp
3.ssl和crypto
4.编译ffmpeg
5.推流命令 WHIP
6.拉流命令 WHEP
7.测试
7.1配置srs
7.1推流
7.3拉流
附录:项目地址

笔者用的是ubuntu22.04默认gcc/g++是11
在编译srtp时报错,多重定义,其实是编译器版本过高,需要切换版本。

sudo apt-get install gcc-9
sudo apt-get install g++-9
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
sudo ln -sf /usr/bin/g++-9 /usr/bin/g++

1.metartc6,这里有webrtc的传输协议。

cd FFmpeg-n4.3.3/metartc6/metartc6
cd libmetartccore6
mkdir build
cd build
./cmake_x64.sh //x86_64
cp ./libmetartccore6.a ../../

2.srtp

./configure
make -j20
cp libsrt2.a ../

3.openssl

./config
make -j20
cp libcrypto2.a libssl2.a ../

4.编译ffmpeg,注意下面路径改为自己的路径

./configure --enable-libx264 --enable-gpl --extra-libs='-L/home/yqw/temp/ffmpeg-webrtc/FFmpeg-n4.3.3/metartc6 -lmetartccore6 -lpthread -lsrtp2 -lssl -lcrypto -ldl'
make -j20
sudo make install

5.推流命令 WHIP

ffmpeg ......-acodec opus -strict -2 -ar 48000 -f webrtc "url"
srs sample: whip url http://192.168.0.105:1985/rtc/v1/whip/?app=live&stream=livestream
ffmpeg ......-acodec opus -strict -2 -ar 48000 -f webrtc "http://192.168.0.105:1985/rtc/v1/whip/?app=live&stream=livestream"
ffmpeg ......-acodec opus -strict -2 -ar 48000 -f webrtc "webrtc://192.168.0.105:1985/rtc/v1/whip/?app=live&stream=livestream"
./ffmpeg -re -i /path/test.mp4 -vcodec libx264 -acodec opus -strict -2 -ar 48000 -f webrtc "http://192.168.0.105:1985/rtc/v1/whip/?app=live&stream=livestream"

6.拉流命令 WHEP

ffplay "webrtc://whep_url"
srs sample: whep url http://192.168.0.105:1985/rtc/v1/whip-play/?app=live&stream=livestream
ffplay "webrtc://192.168.0.105:1985/rtc/v1/whip-play/?app=live&stream=livestream"

7.测试:
7.1拉取srs代码
srs,版本要求SRS version 5.0.153 or higher, or 6.0.43 or higher。

https://github.com/ossrs/srs

编译srs后运行:

./objs/srs -c conf/https.rtc.conf

7.2推流

ffmpeg -re -i /home/yqw/t/juren-30s.mp4 -vcodec libx264 -acodec opus -strict -2 -ar 48000 -f webrtc "http://192.168.100.77:1985/rtc/v1/whip/?app=live&stream=livestream"

如果不要视频如下:

ffmpeg -re -i /home/yqw/t/west.mp4 -vn -acodec opus -strict -2 -ar 48000 -f webrtc "http://192.168.100.77:1985/rtc/v1/whip/?app=live&stream=livestream"

7.3拉流

ffplay "webrtc://192.168.100.77:1985/rtc/v1/whip-play/?app=live&stream=livestream"

在这里插入图片描述

附录:项目地址
https://github.com/metartc/ffmpeg-webrtc.git

相关文章:

  • 如何申请免费域名级SSL证书,实现HTTPS访问
  • AI大模型探索之路-实战篇4:DB-GPT数据应用开发框架调研实践
  • 谷歌快速收录怎么做?
  • 如何选择序列化协议:关键因素与场景分析
  • echarts取消纵坐标,自定义提示内容,完整 echarts 布局代码
  • Pytorch深度学习实践笔记1
  • ubuntu nginx 配置php 网站
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • pip(包管理器) for Python
  • 基于深度学习OCR文本识别
  • 1791.找出星形图的中心节点
  • zdppy_mcrud操作MySQL数据库教程
  • Leetcode 第 130 场双周赛题解
  • 【Hive SQL 每日一题】行列转换
  • Centos 停服倒计时!你的操作系统何去何从?
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [译] 怎样写一个基础的编译器
  • 【刷算法】求1+2+3+...+n
  • CentOS7 安装JDK
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JAVA多线程机制解析-volatilesynchronized
  • k8s如何管理Pod
  • nodejs调试方法
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 技术胖1-4季视频复习— (看视频笔记)
  • 简析gRPC client 连接管理
  • 那些被忽略的 JavaScript 数组方法细节
  • 再次简单明了总结flex布局,一看就懂...
  • 转载:[译] 内容加速黑科技趣谈
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #android不同版本废弃api,新api。
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Charles)如何抓取手机http的报文
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (k8s)Kubernetes本地存储接入
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (四)鸿鹄云架构一服务注册中心
  • (一)80c52学习之旅-起始篇
  • (原创)可支持最大高度的NestedScrollView
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)创业的注意事项
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈