使用树莓派基于FFmpeg推流视频和摄像头到B站直播间

本文介绍了如何使用树莓派通过FFmpeg将视频或摄像头推流到B站直播间,包括获取rtmp地址和直播码、使用不同命令推流,以及用Python控制推流和停止推流的方法。
摘要由CSDN通过智能技术生成


前提条件
1、首先要有一个树莓派,并连接了摄像头,且能够访问网络。
2、在Bilibili中通过实名认证,并开通了直播间。(很简单的,实名认证通过后直接就可以开通了)。
3、FFmpeg。推流默认使用FFmpeg,树莓派官方系统默认安装FFmpeg了的,可以使用ffpmeg -version查看详细信息。

从B站直播间获取rtmp地址和直播码

申请了B站直播间后,用电脑开启直播,一定要用电脑才能获取rtmp地址和直播码,用手机直播姬开播无法获取rtmp地址和直播码。
点击开始直播后会出现rtmp地址和直播码(如下图),把rtmp地址和直播码拼接起来就是后面ffpmeg推流的地址。
在这里插入图片描述

在终端使用ffpmeg进行视频或摄像头推流

以下是树莓派Raspbian系统中推流命令:

#推流USB摄像头(包含音频,音频源为音频文件)
ffmpeg -thread_queue_size 512 -f video4linux2 -s 1280720 -i “视频源” -stream_loop -1 -i “音频源” -vcodec h264_omx -pix_fmt yuv420p -r 30 -s 1280720 -g 60 -b:v 10M -bufsize 10M -acodec aac -ac 2 -ar 44100 -ab 128k -f flv “推流地址”

#推流USB摄像头(包含音频,音频源麦克风)
ffmpeg -thread_queue_size 512 -f video4linux2 -s 1280720 -i “视频源” -i “音频源” -vcodec h264_omx -pix_fmt yuv420p -r 30 -s 1280720 -g 60 -b:v 10M -bufsize 10M -acodec aac -ac 2 -ar 44100 -ab 128k -f flv “推流地址”

#推流USB摄像头(不包含音频)
ffmpeg -thread_queue_size 512 -f video4linux2 -s 1280720 -i “视频源” -vcodec h264_omx -pix_fmt yuv420p -r 30 -s 1280720 -g 60 -b:v 10M -bufsize 10M -an -f flv “推流地址”

#推流视频
ffmpeg -re -i “视频源” -vcodec copy -acodec aac -b:a 192k -f flv “推流地址”

树莓派摄像头推流示例:

ffmpeg -thread_queue_size 512 -f video4linux2 -s 1280720 -i “/dev/video0” -vcodec h264_omx -pix_fmt yuv420p -r 30 -s 1280720 -g 60 -b:v 10M -bufsize 10M -an -f flv “rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_43116538_85852610&key=829133b26b0e1111898aac62df55dcf3&schedul=rtmp”

其中/dev/video0 是树莓派摄像头设备节点,作为推流的输入源,flv 后面那串是B站直播间的rtmp地址加上直播码。
树莓派视频推流示例

ffmpeg -re -i “/home/pi/Desktop/python代码/MP4/video.mp4” -vcodec copy -acodec aac -b:a 192k -flvflags no_duration_filesize -f flv “rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_43116538_85852610&key=829133b26b0e1111898aac62df55dcf3&schedul=rtmp”

以下是Windows系统中推流命令

#推流USB摄像头(包含音频,音频源为音频文件)
ffmpeg -f dshow -s 1280720 -r 1024 -i video=“视频源” -stream_loop -1 -i “音频源” -vcodec libx264 -pix_fmt yuv420p -r 30 -s 1280720 -g 60 -b:v 5000k -acodec aac -ac 2 -ar 44100 -ab 128k -preset:v ultrafast -tune:v zerolatency -f flv “推流地址”

#推流USB摄像头(包含音频,音频源麦克风)
ffmpeg -f dshow -s 1280720 -r 1024 -i video=“视频源” -i “音频源” -vcodec libx264 -pix_fmt yuv420p -r 30 -s 1280720 -g 60 -b:v 5000k -acodec aac -ac 2 -ar 44100 -ab 128k -preset:v ultrafast -tune:v zerolatency -f flv “推流地址”

#推流USB摄像头(不包含音频)
ffmpeg -f dshow -s 1280720 -r 1024 -i video=“视频源” -vcodec libx264 -pix_fmt yuv420p -r 30 -s 1280720 -g 60 -b:v 5000k -an -preset:v ultrafast -tune:v zerolatency -f flv “推流地址”

#推流视频
ffmpeg -re -i “视频源” -vcodec copy -acodec aac -b:a 192k -f flv “推流地址”

以上命令没有经过仔细测试,不同环境需要不同的参数,请自行学习FFmpeg的用法。

FFmpeg基本用法:

ffmpeg

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值