## 启动 ngxflv 使用 docker compose 启动 ``` docker compose up -d ``` ## 推流 文件推流 ``` ffmpeg -hide_banner -re -i test.mp4 -c copy -f flv rtmp://127.0.0.1/rtmp/cam1 ``` PC 摄像头麦克风推流 ``` ffmpeg -hide_banner \ -thread_queue_size 2048 \ -f video4linux2 -video_size 848x480 -framerate 30 -i /dev/video0 \ -thread_queue_size 2048 \ -f alsa -ac 2 -i pulse \ -vcodec libx264 \ -acodec aac \ -b:v 4M \ -b:a 128K \ -max_delay 1000000 -g 5 \ -preset:v ultrafast -tune:v zerolatency \ -vf "drawtext=fontsize=28:fontcolor=red:text='${cam_name}-%{localtime}'" \ -f flv rtmp://127.0.0.1/rtmp/cam1 ``` HLS 协议推流 ``` ffmpeg -hide_banner -re -i test.mp4 \ -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 \ -strict -2 -ac 1 \ -f flv -q 10 rtmp://127.0.0.1/hls/cam1 ffmpeg -hide_banner -f v4l2 -framerate 10 -i /dev/video0 -q 10 -vcodec libx264 -acodec aac \ -vf drawtext=fontcolor=white:fontsize=40:fontfile=test.ttf:line_spacing=7:text='%{localtime}':x=20:y=20 \ -f flv rtmp://127.0.0.1/hls/cam1 ``` ## 拉流 ffplay 拉流 ``` ffplay -hide_banner -i rtmp://127.0.0.1/rtmp/cam1 # 无缓冲模式播放(内网延迟控制在 5s 内) ffplay -hide_banner -fflags nobuffer -i rtmp://127.0.0.1/rtmp/cam1 ``` web 端 flv 拉流 ``` http://127.0.0.1/live?app=rtmp&stream=cam1 http://127.0.0.1/live.flv?port=1935&app=rtmp&stream=cam1 ``` web 端 hls 拉流 ``` # hls 拉流 http://127.0.0.1/hls/cam1.m3u8 ```