rtmp推流

获取摄像头名称
  • 打开命令行工具,运行以下命令以列出所有可用的视频设备:

    ffmpeg -f dshow -list_devices true -i dummy
    
  • 查找输出中的"Video devices"部分,记录下你的摄像头名称。

构建推流命令

ffmpeg -f dshow -i video="摄像头名称":audio="麦克风名称" -vcodec libx264 -preset veryfast -tune zerolatency -acodec aac -ar 44100 -ac 2 -b:a 128k -f flv rtmp://服务器地址/应用名/流名称
  • -acodec aac 设置音频编码为AAC。
  • -ar 44100 设置音频采样率为44100Hz。
  • -ac 2 设置音频通道数为2(立体声)。
  • -b:a 128k 设置音频比特率为128kbit/s。

如果想要同时使用两个摄像头进行推流,其中一个是本地摄像头(同时录制声音和视频),另一个是外接摄像头(仅录制视频),你可以使用FFmpeg的concat功能或者使用两个独立的FFmpeg进程。以下是使用两个FFmpeg进程的方法:

首先,为每个摄像头分别启动一个FFmpeg进程。

1. 本地摄像头(录制声音和视频)

ffmpeg -f dshow -i video="本地摄像头名称":audio="麦克风名称" -vcodec libx264 -acodec aac -preset veryfast -tune zerolatency -f flv rtmp://服务器地址/应用名/本地摄像头流名称

2. 外接摄像头(仅录制视频)

ffmpeg -f dshow -i video="外接摄像头名称" -vcodec libx264 -preset veryfast -tune zerolatency -an -f flv rtmp://服务器地址/应用名/外接摄像头流名称

-an 参数用于禁用音频录制,因为我们只想要外接摄像头的视频流。

执行两个FFmpeg命令

  • 打开两个命令提示符窗口。
  • 在第一个窗口中运行本地摄像头的FFmpeg命令。
  • 在第二个窗口中运行外接摄像头的FFmpeg命令。

这样,两个摄像头就会分别推流到服务器上指定的不同流名称。

相关推荐
superconvert1 个月前
smart_web 管理端基本说明
websocket·nginx·ffmpeg·webrtc·rtmp·hls·srt·m3u8·obs·flv·vmix
Ian10251 个月前
python+openCV+ffmpeg进行物联网设备拉流rtmp
python·opencv·物联网·ffmpeg·iot·rtmp
瘦弱的皮卡丘1 个月前
Adobe Flash,Flash Player和RTMP之间的关系
adobe·rtmp·flash
superconvert2 个月前
怎么在 Linux 下运行 smart_rtmpd
websocket·ffmpeg·webrtc·hevc·aac·rtmp·h264·dash·rtsp·srt·opus·vlc·obs·flv·vmix
韩zj3 个月前
android将pcm byte[]通过Librtmp进行rtmp推流
android·pcm·rtmp
oushaojun23 个月前
ubuntu中使用ffmpeg和nginx推流rtmp视频
nginx·ubuntu·ffmpeg·rtmp
从后端到QT4 个月前
HLS协议之nginx-hls-多码率测试环境搭建
运维·nginx·ffmpeg·音视频·rtmp
Linux音视频开发4 个月前
C#实现信创国产Linux麦克风摄像头推流(源码,银河麒麟、统信UOS)
信创·推流·rtmp·国产化·摄像头推流
freeabc4 个月前
利用 OBS 推送 WEBRTC 流到 smart rtmpd
服务器·webrtc·rtmp·rtsp·sfu·whip/whep