企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
[TOC] # 直播产品的种类 * 泛娱乐化直播 花椒,映客等娱乐直播,还有斗鱼,熊猫等游戏直播 * 实时互动直播 音视频会议,教育直播等,像思科,全时,声网 ## 泛娱乐架构 ![](https://box.kancloud.cn/b1f3c2af19eb44b4f115d272853b0779_1081x630.png) ## 实时互动直播架构 ![](https://box.kancloud.cn/14d8fb92ab6d11dea5c79d1002f381f8_1226x714.png) # mac上安装nginx rtmp流媒体服务 安装nginx+rtmp模块 nginx的仓库好像改了 ~~~ brew tap denji/nginx ~~~ ~~~ brew install nginx-full --with-rtmp-module ~~~ 修改配置文件 ~~~ # 配置rtmp server rtmp { server{ listen 1935; chunk_size 4000; application live { live on; record off; allow play all; } } } ~~~ ## 推流和拉流 推流 ~~~ ffmpeg -re -i out.mp4 -c copy -f flv rtmp:://server/live/streamName ~~~ 将out.mp4推送到服务器地址 拉流 ~~~ ffmpeg -i rtmp://server/live/streamName -c copy dump.flv ~~~ 从服务器地址拉取个文件为dump.flv 调试,本地播放 ~~~ rtmp://server:port/live/steamName ~~~ 录制桌面 ~~~ ffmpeg -f x11grab -s 1920x1080 -i :0.0 -vcodec libx264 -f mp4 zhuomian.mp4 ~~~ 录音 ~~~ ffmpeg -f alsa -ac 2 -i hw:0,0 -acodec libmp3lame -f mp3 luyin.mp3 ~~~ 录制桌面与声音推给斗鱼之类的直播 ~~~ ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :0.0 -f alsa -ac 2 -i hw:0,0 -vcodec libx264 -maxrate 2000k -bufsize 2000k -acodec libmp3lame -ar 44100 -b:a 128k -f flv "rtmp://推流地址" ~~~ # 推流 ~~~ ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName ~~~ * `-re` : 减慢帧率的速度 * `-i` : 表示推出去的多媒体文件的名字 * `-c`: 表示音视频编解码,音频就是`-a`,视频就是`-v` copy表示拷贝 * `-f` : 表示推出去的文件格式 # 拉流保存 ~~~ ffmpeg -i rtmp://server/live/streamName -c copy dump.flv ~~~ * `-c`: 表示音视频编解码,音频就是`-a`,视频就是`-v` copy表示拷贝 测试的话就直接 ~~~ ffplay rtmp://server/live/streamName ~~~ 可以网上找些地址测试下 # 转流 ~~~ ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v copy -f flv rtmp://server/live/h264Stream ~~~ # 实时推流 ~~~ ffmpeg -framerate 15 -f avfoundation -i "1" -s 1280x720 -c:v libx264 -f flv rtmp://localhost:1935/live/room ~~~ # mac下的一些命令 ~~~ ffmpeg -f avfoundation -list_devices true -i "" 参考命令 ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i  "0" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv  rtmp://localhost:1935/zbcs/room ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i  "0" -vcodec libx264 -acodec libfaac -f flv  rtmp://localhost:1935/zbcs/room ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i  "0"  \-c:v libx264 -preset ultrafast -acodec libfaac -f flv  rtmp://localhost:1935/zbcs/room ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i  "0"  -vcodec libx264 -preset ultrafast -acodec libfaac -f flv  rtmp://localhost:1935/zbcs/room ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i  "0"  -pixel_format nv12 -preset ultrafast -acodec libfaac -f flv  rtmp://localhost:1935/zbcs/room ffmpeg -f avfoundation -framerate 30 -video_size 1280x720 -i  "0"  -vf format=yuv444p,crop=426:240:507:339 -preset ultrafast -acodec libfaac -f flv  rtmp://localhost:1935/zbcs/room ffmpeg -f avfoundation -capture_cursor 1 -i 1:0 -r 30000/1001 -s 1280x800 -vsync 2 -c:v libvpx-vp9 -c:a libopus -b:v 1M -b:a 128K capture.webm -f flv rtmp://localhost:1935/zbcs/room ffmpeg -f avfoundation -pixel_format uyvy422 -i "1" -f flv rtmp://localhost:1935/zbcs/room //推流桌面 - 只有桌面内容 ffmpeg -f avfoundation -pixel_format uyvy422 -i "1" -f flv rtmp://192.168.10.61:1935/zbcs/room ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://192.168.10.61:1935/zbcs/room //推流摄像头 ffmpeg -f avfoundation -framerate 30 -video_size 1280x720 -i  "0"  -vcodec libx264 -acodec libfaac -f flv  rtmp://192.168.10.61:1935/zbcs/room //只推流麦克风 ffmpeg -f avfoundation -i ":0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://192.168.10.61:1935/zbcs/room //摄像头+麦克分 ffmpeg -f avfoundation -framerate 30 -video_size 1280x720 -i "0:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://192.168.10.61:1935/zbcs/room ffmpeg -f avfoundation -framerate 30 -video_size 1280x720 -i "0:0" -vsync 2 -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -b:v 1M -b:a 128K -f flv rtmp://192.168.10.61:1935/zbcs/room ~~~