本文由【云老大】 TG@yunlaoda360 撰写
创建虚拟机实例
- 登录Google Cloud Console,创建一个虚拟机实例。选择合适的操作系统,如Ubuntu或Debian。
配置网络设置
- 在Google Cloud Console中,依次选择“网络服务”>“VPC网络”>“防火墙规则”。
- 创建新的防火墙规则,允许外部流量访问流媒体服务所需的端口,如RTMP(1935)、HTTP(80)、HTTPS(443)等。
安装流媒体服务器软件
-
选择流媒体服务器软件:常见的流媒体服务器软件有Nginx-RTMP模块、Jellyfin、GStreamer等。可以根据需求选择合适的软件进行安装。
-
安装Nginx-RTMP模块:
-
更新系统包:
bash
sudo apt-get update -
安装必要的依赖:
bash
sudo apt-get install -y libpcre3 libpcre3-dev libssl-dev -
下载并编译Nginx-RTMP模块:
bash
wget https://nginx.org/download/nginx-1.21.3.tar.gz wget https://github.com/arut/nginx-rtmp-module/archive/master.zip tar -zxvf nginx-1.21.3.tar.gz unzip master.zip cd nginx-1.21.3 ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master make sudo make install -
配置Nginx-RTMP模块,编辑配置文件
/usr/local/nginx/conf/nginx.conf,添加RTMP和HTTP相关配置。 -
启动Nginx服务:
bash
sudo /usr/local/nginx/sbin/nginx -
测试RTMP流:
-
使用FFmpeg进行推流:
bash
ffmpeg -re -i test.mp4 -c copy -f flv rtmp://<your_server_ip>:1935/hls/stream1 -
使用VLC或其他播放器进行拉流播放:
bash
rtmp://<your_server_ip>:1935/hls/stream1或访问
http://<your_server_ip>:88/flv_live进行HTTP-FLV拉流,访问http://<your_server_ip>:88/hls/stream1.m3u8进行HLS拉流。
-
-
配置域名和DNS解析
- 购买合适的域名,并将其解析到谷歌云服务器的IP地址上。
视频上传和转码
- 将视频文件上传到服务器指定的存储路径中。可以使用FTP等工具进行上传。
- 配置视频转码参数,可以根据需求设置转码模板,实现不同格式和码率的视频转码。
分发与播放
- 配置服务器的缓存策略,以提高用户的访问速度。
- 生成视频的链接地址,供用户进行播放。
使用Jellyfin搭建私人影院系统
-
安装Jellyfin:
bash
curl repo.jellyfin.org/install-deb… | bash sudo apt install jellyfin -y ```
-
启动服务:
bash
sudo systemctl enable jellyfin sudo systemctl start jellyfin ```
- 将视频文件上传到
/var/lib/jellyfin/media/目录,系统会自动扫描并整理相关媒体信息。 - 通过浏览器访问
http://<your_server_ip>:8096进行管理。
使用Navidrome搭建音乐服务器
-
下载并安装Navidrome:
bash
wget tar -xvzf navidrome_linux_amd64.tar.gz sudo mv navidrome /usr/local/bin/ ```
-
创建音乐和数据目录:
bash
mkdir -p /opt/navidrome/music mkdir -p /opt/navidrome/data ```
- 创建Systemd服务文件
/etc/systemd/system/navidrome.service,并启动服务。 - 通过浏览器访问
http://<your_server_ip>:4533进行管理。
使用Golang实现高性能MP4视频流媒体服务器
- 编写Go代码实现HTTP服务器和视频文件处理,使用
nareix/joy4库来处理MP4文件的读取和流式传输,利用Golang的goroutine和channel实现并发处理。 - 实现基本的身份验证机制,防止未授权访问,并使用HTTPS协议加密传输数据。
外网访问优化(可选)
- 使用Nginx配置反代并绑定域名,免费申请HTTPS证书(如使用Let's Encrypt),提高安全性。