首页 > 系统相关 >nginx RTMP推拉流,多个音频流合并。

nginx RTMP推拉流,多个音频流合并。

时间:2023-06-26 17:25:16浏览次数:41  
标签:通话 音频 合并 nginx 推拉 RTMP rtmp

使用nginx RTMP(nginx的一个插件模块,具体的网上搜一下)做一个简易的多人音频通话流媒体服务器,多个端通话时,客户端无法处理其他端发过来的音频流,比如A、B、C三个端通话,A设备同时持有B、C的音频流,这样对设备端非常的不友好。

这时候就需要用到一个强大的工具,FFMPEG,安装网上很多,搜下就有,具体命令如下:

ffmpeg -i rtmp://source1 -i rtmp://source2 -filter_complex amix=inputs=2:duration=longest -c:a aac -f flv rtmp://destination

上述命令假设你有两个输入 RTMP 音频流,分别是 rtmp://source1rtmp://source2,以及一个输出 RTMP 地址 rtmp://destination

使用 -filter_complex amix=inputs=2:duration=longest 部分来合并两个输入流,并确保输出流的时长与最长的输入流相匹配。

使用 -c:a aac 部分来指定输出音频的编码格式为 AAC。

最后,使用 -f flv 来指定输出格式为 FLV。

这时候我们可以动态的根据参与通话的设备数量来通过上诉命令,合并音频流,并推送到新的一个流地址,设备端只需要拿到合并的这个地址播放即可。

标签:通话,音频,合并,nginx,推拉,RTMP,rtmp
From: https://www.cnblogs.com/rolayblog/p/17506224.html

相关文章

  • FFmpeg混流及录制rtmp直播流
    1、什么是混流?混流就是把多路音视频流合成单流。准确的说,混流应该叫做混音(音频流)混画面(视频流)混流的过程包括解码、混流、编码和推流四个部分。混流这个环节包括做抖动缓冲,目的是把多路流进行画面对齐和音画同步,同时通过缓冲对抗网络抖动,以便混合成一路流以后能够达到良好的效果。......
  • nginx 1.25.1 发布
    nginx1.25.1有一个很不错的特性,就是支持了http2指令,以前这个指令主要是也listen配置使用的(ssl+http2场景)独立指令之后就有了很方便的功能了,比如有些业务希望使用http0.9-1.1协议,有些需要使用http2,当然目前也是支持了http3的,可以做到分离,以前版本存在一个问题就是开启了之......
  • vue-router之hash与history,以及nginx配置
    本篇讲解前端项目的路由模式(以vue-router为例),以及history模式下的项目部署问题。vue-router的路由模式可以通过指定mode属性值控制,可选值:"hash"、"history"、"abstract",默认:"hash"(浏览器环境),"abstract"(Node.js环境)constrouter=newVueRouter({mode:......
  • Nginx配置max_fails fail_timeout 不起作用 - stub_status - 调试 nginx --with-deb
    0.stub_statusconfigurearguments:--prefix=/usr/local/tengine--with-http_realip_module--with-http_gzip_static_module--with-pcre--with-http_stub_status_module--with-http_ssl_module--add-module=/opt/nginx-goodies-nginx-sticky-module-ng[root@slave1con......
  • Nginx-PHP优化设置 + lnmp调优的关键影响因素 + php-fpm + nginx返回码 + tcp调优 +
    最大文件描述符Linux内核本身有文件描述符最大值的**,你可以根据需要更改:系统最大打开文件描述符数:/proc/sys/fs/file-max临时性设置:echo1000000>/proc/sys/fs/file-max永久设置:修改/etc/sysctl.conf文件,增加fs.file-max=10000002、用户级设置vi/etc/security/limits.confhttp......
  • elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0
    1.本次采用的一台主机,将所有的软件安装一台上进行测试工作。2.安装部署:https://blog.51cto.com/hwg1227/22999953.简单调试输出rubydebuginput{file{path=>"/usr/local/log_test/*/*/*.log"start_position=>"beginning"}}output{e......
  • 配置文件 proxy_set_header -发往后端服务器的请求头---- nginx日志设置级别调试技巧
    http{includemime.types;default_typeapplication/octet-stream;sendfileon;#tcp_nopushon;#keepalive_timeout0;keepalive_timeout65;server_tokensoff;log_formatmain'$remote_addr-$remote_user[$time_local]......
  • Nginx 根据请求参数代理到指定网址
    1、参考nginx中将某一个请求的路径重定向到其它网址nginx:[emerg]unknowndirective"if($request_uri"in2、小坑if与($间需要有空格。判断请求路径中,是否包含/adminif($request_uri~'/admin'){return404;}3、配置location/xxxxx/client/register{......
  • MacOs Docker nginx.conf 配置
    `server{listen8089;server_namelocalhost;client_max_body_size120M;#php容器项目地址root/var/www/html/shop;indexindex.phpindex.htmlindex.htm;location/{#try_files$uri$uri//index.php?s=$uri&$args;}......
  • macbook m1 使用 brew 安装 nginx + 多版本 php
    目录macbookm1使用brew安装nginx+多版本php安装多个php版本1.配置php仓库2.安装多版本php3.配置php-pfm的端口4.启动php-pfm服务5.切换php-cli命令行的版本安装nginxmacbookm1使用brew安装nginx+多版本php在FastAdmin开发是,可能会用到多个p......