功能实现: 将电脑摄像头捕捉到的视频制作成视频流,(主要用于测试)
准备ffmpeg nginx+ nginx-rtmp-module
下载安装: 参考: https://blog.csdn.net/xiaoxueyaoxuexi/article/details/110451006 直接点击https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip 设置环境变量: 用户变量就行: 然后在cmd 窗口命令下 输入 ffmpeg –version 出现下图即可
查看摄像头名称: ffmpeg -list_devices true -f dshow -i dummy 红框里面就是摄像头名称 打开摄像头可以使用 ffplay -f dshow -i video="HP HD Camera"
到现在 我们这个功能完成了一半 下面是nginx 就是参考这个: https://blog.csdn.net/little__SuperMan/article/details/89071764 ① 下载nginx (不是不用原生的 nginx-rtmp-module 是源码需要编译,用这个不用编译) 下载链接: http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip 下载后解压 ② 下载nginx-rtmp-module模块 可以进入nginx目录中 直接使用git指令 git clone https://github.com/arut/nginx-rtmp-module/ ③配置config文件: conf\nginx-win-rtmp.conf 内容如下:
worker_processes 2;
events {
worker_connections 8192;
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
record all;
record_path /tmp/av;
record_max_size 1K;
record_unique on;
allow publish 127.0.0.1;
deny publish all;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
sendfile off;
server_names_hash_bucket_size 128;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 30;
send_timeout 10;
keepalive_requests 10;
server {
listen 80;
server_name localhost;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root nginx-rtmp-module/;
}
location /control {
rtmp_control all;
}
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
④启动nginx: 在nginx安装目录下执行 nginx.exe -c conf\nginx-win-rtmp.conf
浏览器输入http://localhost 出现 Welcome to nginx! 及成功
最后我们要将摄像头的影像推到nginx上 cmd 执行
ffmpeg -f dshow -i video="HP HD Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://localhost:1935/live/test
rtmp://localhost:1935/live/test 就是流地址 虽然报错了 但它能用 最后在 flv中播放 rtmp://localhost:1935/live/test 即可 本机测试 延迟5秒左右
|