ffmpeg推流B站直播

环境:阿里云服务器ECS Ubuntu系统
目的:在服务器上使用FFmpeg将视频推流到B站进行直播。


步骤:

1. 安装FFmpeg和yasm

下载安装ffmpeg,官网下载地址:
http://ffmpeg.org/download.html
下载后上传解压
先不安装FFmpeg,因为还没有安装yasm
到官网下载yasm
http://yasm.tortall.net/Download.html
如下命令安装:

tar -xvzf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make
make install

安装完成后,回到FFmpeg文件夹中,继续安装。
如下命令安装:

./configure --enable-shared --prefix=/monchickey/ffmpeg
make
make install

编译过程较长,耐心等待。

2.链接配置

编译完成之后执行 cd /monchickey/ffmpeg/ 进入安装目录,查看一下发现有bin,include,lib,share这4个目录,其中bin是ffmpeg主程序二进制目录,include是C/C++头文件目录,lib是编译好的库文件目录,share是文档目录。

进入bin目录,执行 ./ffmpeg -version 查看当前版本的详细信息,默认情况下一般会报libavdevice.so.57: cannot open shared object file: No such file or directory,原因是lib目录未加载到链接到系统库中,系统ld目录列表在/etc/ld.so.conf中,打开文件会发现,里面引用了/etc/ld.so.conf.d/下面所有的.conf文件,比如mariadb-x86_64.conf我们只需要创建一个文件并写入lib路径即可,执行命令: vim /etc/ld.so.conf.d/ffmpeg.conf 然后添加一行内容: /monchickey/ffmpeg/lib 之后保存并退出,然后执行 ldconfig 使配置生效,现在再次执行 ./ffmpeg -version 显示就正常了。
(跟着一顿胡乱操作居然真的正常了…orz)

然而还需要把这个bin目录加到系统的链接库中:
方法:修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码

PATH=\$PATH:/monchickey/ffmpeg/bin
        export PATH

最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。

3.启动B站直播间获取直播码和rtmp地址

在B站的个人中心的开播设置中开启直播间,获取到rtmp地址和直播码,然后运行命令就可以开始直播啦:

ffmpeg -re -i "1.mp4" -vcodec copy -acodec aac -b:a 192k -f flv "你的rtmp地址/你的直播码"

其中
-i 后加视频路径,也可以是网络上的视频地址
-b:a 192k 表示码率
-f flv 表示推流使用格式,据说必须是这个flv格式


后记 : 跟着做完之后,虽然确实可以直播,但是却三步一卡着实蛋疼,修改码率也无效,反而会导致声音听起来像是在水下一样朦胧不清。由于我对视频的这些个格式规范都不了解,所以也无从下手解决。不过也可能是由于带宽太小的问题?用的是最低配的服务器所以带宽是1M。

参考文章:
Linux下安装ffmpeg
使用FFmpeg在B站直播的姿势

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要使用FFmpeg和Nginx推流B站,首先需要搭建一个Nginx RTMP服务器并安装FFmpeg。具体步骤如下: 1. 首先,启动Nginx服务器,可以使用命令`./usr/local/nginx/sbin/nginx`来启动Nginx。 2. 安装FFmpeg,可以使用命令`apt install FFmpeg`来安装。 3. 配置Nginx RTMP服务器,可以参考相关教程进行配置。 4. 启动Nginx服务器,确保RTMP模块已经加载。 5. 在FFmpeg中推送一个RTMP流到Nginx服务器。可以使用以下命令: ``` ffmpeg -re -i input.mp4 -c:v copy -c:a copy -f flv rtmp://nginx_server/application/stream_key ``` 其中,`input.mp4`是要推送的视频文件,`nginx_server`是Nginx服务器的地址,`application`是Nginx配置文件中设置的应用名称,`stream_key`是B站提供的推流码。 6. 通过访问Nginx服务器来收看实时视频流。可以在浏览器中输入Nginx服务器的地址和应用名称来观看推流的视频。 请注意,以上步骤只是一个简单的示例,实际使用时可能需要根据具体情况进行调整和配置。另外,推流B站可能需要额外的认证和设置,具体可以参考B站的相关文档和指南。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [FFmpeg+nginx实现b站推流直播](https://blog.csdn.net/Red_Fox___/article/details/129338148)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [FFmpeg入门详解之101:Windows下用FFmpeg nginx rtmp搭建直播环境,实现推流、拉流](https://blog.csdn.net/teachermei/article/details/127425810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值