快手 · 音视频技术入门课
刘歧
快手音视频首席架构师
4513 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 18 讲
快手 · 音视频技术入门课
15
15
1.0x
00:00/00:00
登录|注册

05|如何使用 FFmpeg 与 OBS 进行直播推流?

你好,我是刘歧。
前面四节课,我们介绍了音视频与直播相关的基础知识,那么接下来我们就要进入实战阶段了。学完这个部分,音视频处理的常用工具怎么用,你就能心中有数了。
前面我们虽然了解了什么是直播,直播服务器可以用到哪些开源项目。但直播推流到底怎么实现并没有详细展开,所以这节课我们重点讲讲怎么基于 FFmpeg 推直播流。如果你的业务场景用 FFmpeg 不太方便,我还提供了另一个方法——桌面工具 OBS 推流。相信学完之后,你就能轻松搞定推流。
首先,我们做直播推流的前提是要有直播服务器接收直播流,所以需要我们自己建设一个流媒体服务器。我们可以根据上一节课提到的开源直播服务器的官方文档部署直播服务器,也可以挖掘自己当前使用的直播服务平台的服务器接收直播流。为了方便演示,我使用快手的直播云服务来接收我推的直播流。界面如下:

FFmpeg 推流

通常,推流服务器的管理界面会提供一个收流的 RTMP 服务器地址,还会提供一个直播流的流名称,也叫串流密钥。例如推流的 RTMP 服务器地址是 rtmp://publish.x.com/live,串流密钥是 stream,那么最后组成的推流地址就是 rtmp://publish.x.com/live/stream。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了使用FFmpeg和OBS进行直播推流的方法。通过FFmpeg,用户可以使用命令行快速推流,也可以采集摄像头、桌面等外设图像并进行编码推流。而OBS则是一个带界面的推流工具,功能强大,可以抓取本地窗口的场景并推流到RTMP服务器上。作者详细介绍了使用OBS的步骤,包括设置推流和编码器、视频和音频编码参数等。推流后可以在直播间里观看直播流内容。总的来说,本文通过介绍FFmpeg和OBS的使用方法,帮助读者了解了如何进行直播推流,为读者提供了实用的技术指导。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《快手 · 音视频技术入门课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • Geek_e2e4e9
    ffmpeg安装太费劲了,分享个靠谱的文档:https://www.jianshu.com/p/663267e13769

    作者回复: 安装的话最好看官方文档,毕竟版本比较多,jianshu只是某个人在某个场景的操作,官方文档的内容更详细一些,况且ffmpeg很注重文档与代码版本一致性

    2022-08-20归属地:北京
    2
    3
  • 小城大梦
    请教一下老师,按照上面说的,试了一下ffmpeg推流,不过一直错误,难道是我参数有误?信息如下:xxx@xxx-MB4 FFmpeg % ffmpeg -re -f -i /Users/allenchen/workspace/FFmpeg/output.flv lavfi -i testsrc=s=1280x720:r=25 -pix_fmt yuv420p -vcodec libx264 -f flv rtmp://open-push.voip.yximgs.com/gifshow/kwai_actL_ol_act_9934790925_strL_origin?sign=633d0143-c210c0d7d91c2c1849c18bbeeac98244&ks_fix_ts 输出内容: [4] 32198 zsh: no matches found: rtmp://open-push.voip.yximgs.com/gifshow/kwai_actL_ol_act_9934790925_strL_origin?sign=633d0143-c210c0d7d91c2c1849c18bbeeac98244 [4] exit 1 ffmpeg -re -f -i /Users/allenchen/workspace/FFmpeg/output.flv lavfi -i - zsh: command not found: ks_fix_ts

    作者回复: rtmp那个url用双引号扩起来

    2022-08-28归属地:北京
    1
  • ifelse
    老师,请问抖音,B站等平台提供的Pc直播工具,算是类似OBS的推流工具吗?

    作者回复: 算是

    2023-12-23归属地:浙江
  • 包美丽
    成功了!

    编辑回复: 棒!

    2022-11-13归属地:北京
  • Geek_3b601e
    大师兄 答案是什么,直播的过程中怎么看分辨率和帧率

    作者回复: 下一堂课有讲哦 😁

    2022-08-30归属地:北京
  • 晓风残月
    老师,我想做个远程控制Android平板,Android录屏用H264编码,服务器做转发(NAT穿越局限太大),但服务器只有5M带宽,还跑着别的项目,同一时刻最多有一个设备远程连接,您觉得我用什么传输协议好一些?RTMP还是RTSP或者是其他?麻烦告知一下

    作者回复: 远程控制的话 大多数好像选择的是RTC

    2022-08-12归属地:北京
  • peter
    请教老师一个问题: Q1:我对于“FFmpeg推流操作步骤”的理解是: Step1:手机上安装快手APP,创建一个直播间,该直播间会有文中提到的收流地址,Step2:在PC机上安装FFmpeg,安装后采用命令行来推送视频到直播间的收流地址。 我的理解是否对?

    作者回复: 正确

    2022-08-08归属地:北京
  • 小城大梦
    补充下上面推流失败的后续,经老师的指出,对推流命令中的目标地址url必须加上双引号,加上双引号之后还是报错,后来发现有参数的顺序错了,最终执行OK的命令如下: ffmpeg -re -i /Users/allenchen/workspace/FFmpeg/output.flv -f lavfi -i testsrc=s=1280x720:r=25 -pix_fmt yuv420p -vcodec libx264 -f flv "rtmp://open-push.voip.yximgs.com/gifshow/kwai_actL_ol_act_9934790925_strL_origin?sign=633d0143-c210c0d7d91c2c1849c18bbeeac98244&ks_fix_tsb" 希望对其他同学有帮助
    2022-08-28归属地:广东
    1
  • dog_brother
    之前基于nginx搭建过直播服务器
    2022-08-03归属地:河北
    1
  • 啊良梓是我
    云直播仅对媒体政务号和企业认证账号开放,其他账号请使用直播伴侣或快手App开播,并遵守快手直播规范
    2023-12-06归属地:广东
    2
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部