获取摄像头名称
-
打开命令行工具,运行以下命令以列出所有可用的视频设备:
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命令。
这样,两个摄像头就会分别推流到服务器上指定的不同流名称。