# nginx-rtmp **Repository Path**: shadaileng/nginx-rtmp ## Basic Information - **Project Name**: nginx-rtmp - **Description**: nginx-rtmp实现的直播-点播服务器 - **Primary Language**: Unknown - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2020-03-01 - **Last Updated**: 2025-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 构建镜像 ``` # AMD64 $ sudo docker-compose build # arm64 $ sudo docker-compose -f docker-compose_arm.yaml build ``` ## 运行 ``` # AMD64 $ sudo docker-compose up -d # arm64 $ sudo docker-compose -f docker-compose_arm.yaml up -d ``` ## RTMP 1. 直播 利用`ffmpeg`进行推流 ``` # source: 本地视频文件名 # 192.168.10.108 : 服务器ip地址 # 8900 : rtmp监听端口,映射容器内的`1935` ffmpeg -re -i .mp4 -acodec copy -vcodec copy -f flv -an rtmp://192.168.10.108:8900/live/a ``` 利用`vlc`测试,地址: `rtmp://192.168.10.108:8900/live/a` - `192.168.10.108`: 主机`ip`地址 - `8900`: `rtmp`监听端口,映射容器内的`1935` - `a`: 密文,与推流密文对应 --- 2. 点播 复制视频文件到`vod`点播目录 ``` # source: 视频文件名 $ cp .mp4 /var/www/hls ``` 利用`vlc`测试: `rtmp://192.168.10.108:8900/vod/.mp4` - `192.168.10.108`: 主机`ip`地址 - `8900`: `rtmp`监听端口,映射容器内的`1935` - `.mp4`: 视频文件 > 测试只有较短的视频才能实现`rmtp`点播 ## HTTP 1. 点播 - 将切片的`ts`文件和`m3u8`文件放在`/www/hls_last`目录下. ``` # source: 被切分的文件名 $ ffmpeg -i .mp4 -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list .m3u8 -segment_time 10 _%03d.ts $ cp -r * /www/hls_last ``` - `vlc`输入[`http://192.168.10.108:8800/hls_last/