登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [golang][视频]Golang流媒体实战之三:转推和录制[zt]     [回主站]     [分站链接]
[golang][视频]Golang流媒体实战之三:转推和录制[zt]
clq
浏览(173) - 2023-06-07 11:20:34 发表 编辑

关键字:



https://blog.csdn.net/boling_cavalry/article/details/129775661

Golang流媒体实战之三:转推和录制

于 2023-03-26 11:38:47 发布 261


这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

本篇概览

本文是《Golang流媒体实战》系列的第三篇,咱们不忙着写代码,继续熟悉开源流媒体服务器lal,今天练习的是流传输过程中两个重要功能:转推和录制

关于转推功能,可以从下图了解,FFmpeg推流到转推节点后,转推节点会将该路流推送到录制和源站两个节点,录制节点负责录制flv文件,源站作为媒体源,接受外部拉流(源站->拉流->VLC这个链路已在前文《Golang流媒体实战之二:回源》详细说明)
在这里插入图片描述

如果把FFmpeg换成主播,VLC换成观众,是不是有直播内味了…

今天要实战的上图的绿色部分,至于蓝色部分已在前文《Golang流媒体实战之二:回源》有详细说明,就不赘述了

下图是接下来要实战的部署情况,省略掉拉流节点后,只要准备三台电脑即可完成本次实战:MacBook、阿里云、Linux
在这里插入图片描述

部署录制节点

首先启动的是录制节点,这个部署在阿里云服务器上
打开配置文件lalserver.conf.json,找到record节点

"record": {
"enable_flv": false,
"flv_out_path": "./lal_record/flv/",
"enable_mpegts": false,
"mpegts_out_path": "./lal_record/mpegts"
},

1
2
3
4
5
6

本次实战暂定用flv格式录制,于是将enable_flv的值改为true

"record": {
"enable_flv": true,
"flv_out_path": "./lal_record/flv/",
"enable_mpegts": false,
"mpegts_out_path": "./lal_record/mpegts"
},

1
2
3
4
5
6

将修改后的配置存盘,执行以下命令启动

./bin/lalserver -c conf/lalserver.conf.json

1

录制节点就绪了,接下来是源站

部署源站

这个没什么好说的,在源站电脑上,使用默认配置文件启动lal即可

部署转推节点

通过前面的部署图可知,转推节点要将收到的流转推到录制节点和源站,因此要修改lal的配置文件lalserver.conf.json,找到relay_push节点,原始内容如下

"relay_push": {
"enable": false,
"addr_list":[
]
},

1
2
3
4
5

修改relay_push节点,将enable设置为true,再把录制节点和源站的地址都填进去,端口都保持1935(rtmp端口)

"relay_push": {
"enable": true,
"addr_list":[
"录制节点ip:1935",
"源站节点ip:1935"
]
},

1
2
3
4
5
6
7

配置完成后,执行以下命令启动转推节点

./bin/lalserver -c conf/lalserver.conf.json

1

现在三个lal节点都启动了,接下来验证它们能否正常工作

验证:FFmpeg推流到转推节点

推流命令如下,ffmpeg和sample.mp4文件的位置请自行调整

./ffmpeg \
-re \
-stream_loop -1 \
-i ./sample.mp4 \
-c copy \
-f flv \
'rtmp://127.0.0.1:1935/live/test110'

1
2
3
4
5
6
7

推流成功后,先用VLC直接从源站拉流试试,如下图,能正常播放,证明转推到源站没有问题
在这里插入图片描述
然后用ctrl+c结束FFmpeg推流,这样录制节点就会完成录制
登录录制节点,查看lal的文件夹,如下,可见lal_record/flv目录下存放着录制好的flv文件,名为test110-1679800510.flv

:~# tree lal
lal
├── bin
│ └── lalserver
├── conf
│ └── lalserver.conf.json
├── lal_record
│ ├── flv
│ │ └── test110-1679800510.flv
│ └── hls
└── logs
└── lalserver.log

1
2
3
4
5
6
7
8
9
10
11
12

将上述test110-1679800510.flv文件从录制节点下载到本地,分别用IINA、ffplay、VLC播放,结果IINA和ffplay播放正常,而VLC出现黑屏或者音画不同步,稍微拖动一下进度条后又播放正常了
至此,lal的转推和录制能力就体验完毕了,这还没有写代码,凭借几行配置就已经体会到lal的强大了,接下来的系列文章,咱们会通过编码去畅游流媒体的精彩世界!


总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1