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"

在这里插入图片描述

相关推荐

  1. <span style='color:red;'>ffmpeg</span>

    ffmpeg

    2024-05-25 17:55:04      146 阅读
  2. FFmpeg

    2024-05-25 17:55:04       31 阅读
  3. ffmpeg

    2024-05-25 17:55:04       33 阅读
  4. Webrtc支持FFMPEG硬解码之解码实现(三)

    2024-05-25 17:55:04       44 阅读
  5. Webrtc支持FFMPEG硬解码之NVIDA(二)

    2024-05-25 17:55:04       35 阅读
  6. Webrtc支持FFMPEG硬解码之Intel(一)

    2024-05-25 17:55:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-25 17:55:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-25 17:55:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-25 17:55:04       87 阅读
  4. Python语言-面向对象

    2024-05-25 17:55:04       96 阅读

热门阅读

  1. mybatis一对一,一对多,字段重复

    2024-05-25 17:55:04       32 阅读
  2. [Android]Mac电脑ADB使用

    2024-05-25 17:55:04       35 阅读
  3. 一文详解手机在网状态查询API

    2024-05-25 17:55:04       26 阅读
  4. 链表 删除单链表的重复节点

    2024-05-25 17:55:04       40 阅读
  5. Golang并发编程-协程goroutine初体验

    2024-05-25 17:55:04       35 阅读
  6. html--蛆

    html--蛆

    2024-05-25 17:55:04      26 阅读
  7. centos7上安装ansible的方法

    2024-05-25 17:55:04       35 阅读