[技术分享] 使用ffmpeg实现无人值守直播
胡肆_成融滑雪约课
编辑于 2023年10月20日 19:45
收录于文集
共1篇

最近在研究了下ffmpeg 现在把研究成果分享出来 

至于它是做什么的 大概率就是用命令行来处理图片,音频,视频的工具 

当然处理这些有更专业的pr等软件 不过ffmpeg强大之处在于可以输出到直播流 这让我们可以实现无人值守直播

[本文稍微需要些电脑技术基础]


Step1 windows下载安装ffmpeg

https://ffmpeg.org/download.html#build-windows

然后解压到磁盘目录下 接着将ffmpeg添加到环境变量中去

终端试试 ffmpeg -version 是否有输出

到这里位置安装已经成功了 恭喜你 完成一大步了

Step2 视频输出到直播服务地址

1. 假如你想在B站直播 

进入bilibili-个人中心-直播间设置-开播设置-开始直播 获取服务器地址和串流密钥

最后将A和B拼接在一起 格式如下 这就是直播推流地址了

"rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_xxxxxxxxxxx&key=xxxxxxxxxxxxxxxxxx&schedule=rtmp&pflag=1"

2 . 准备你想要直播播放的视频 取它的绝对路径

>取绝对路径方法 shift + 右键 >> 复制文件地址

最后在终端输入命令行

ffmpeg -re -i "C:\xxx\xxx\video.MP4t&#​34; -vcodec copy -acodec aac -b:a 96k -f flv "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_xxxxxxxxxxx&key=xxxxxxxxxxxxxxxxxx&schedule=rtmp&pflag=1"

简单阐述下入参格式和参数说明吧

 "-vcodec copy&#​34;\"acodec aac&#​34;  这种 "-&#​34; + 字母的 就是一个完整的配置项 '-配置key 配置value&#​39;

 -re  就是real-time 直播必须带这参数

-i "xxx.mp4&#​34; 就是input 媒体输入

 -vcodec copy  就是video decode 视频解码 copy就是沿用输入视频的解码方式

-acodec aac 就是audio decode 音频解码 aac是音频的解码方式

-b:a 96k 就是bit rate 单位是 kb/s

-f flv 就是force format  flv 强制输出flv格式

最后接的就是输出地址了 可以是输出的文件名 也可以是推流地址

这就是最简单的用法了 快去看看你的直播间情况吧

这是笔者的直播链接 有兴趣可以看看 http://live.bilibili.com/11598723​ 

后面笔者可能会继续推出进阶用法 看时间吧