Ubuntu系统完全支持通过域名搭建视频服务,无论是点播(VOD)还是直播(Live Streaming),均可通过常见软件(如Nginx、FFmpeg)实现。以下是具体实现方式及关键步骤:
在Ubuntu上搭建视频服务前,需安装以下核心软件:
点播服务适用于存储和播放预先上传的视频文件(如MP4、AVI),核心配置是通过Nginx的alias
指令映射视频目录,并设置正确的MIME类型。
/etc/nginx/sites-available/default
),添加以下server
块:server {
listen 80;
server_name yourdomain.com; # 替换为你的域名
location /videos {
alias /var/www/videos; # 视频文件存储路径(需提前创建并赋予权限,如`chmod -R 777 /var/www/videos`)
autoindex on; # 可选:允许目录浏览
types { # 明确指定视频格式的MIME类型
video/mp4 mp4;
video/webm webm;
video/ogg ogv;
}
}
}
test.mp4
)放入/var/www/videos
目录,通过浏览器访问http://yourdomain.com/videos/test.mp4
即可播放。直播服务适用于实时推送视频流(如监控、在线课堂),常用协议包括RTMP(低延迟)、HLS(兼容性好,支持iOS/Android)。
RTMP方案(低延迟):
需安装Nginx的nginx-rtmp-module
模块(源码编译安装),配置rtmp
块:
rtmp {
server {
listen 1935; # RTMP默认端口
application live { # 应用名(自定义)
live on; # 开启实时流
record off; # 关闭录像(如需保存可改为`record all`)
}
}
}
推流命令(使用FFmpeg):ffmpeg -i /dev/video0 -vcodec libx264 -preset ultrafast -tune zerolatency -f flv rtmp://your_server_ip/live/stream_name
(/dev/video0
为摄像头设备,stream_name
为自定义流名称)。
播放地址:rtmp://your_server_ip/live/stream_name
(VLC等播放器可打开)。
HLS方案(兼容性好):
通过FFmpeg将视频流分割为TS片段,配合Nginx提供m3u8
索引文件:
server {
listen 80;
server_name yourdomain.com;
location /hls {
types {
application/vnd.apple.mpegurl m3u8; # HLS索引文件类型
video/mp2t ts; # TS视频片段类型
}
alias /path/to/hls/files; # HLS文件存储路径
add_header Cache-Control "no-cache"; # 禁用缓存
}
}
推流命令(生成HLS):ffmpeg -i /dev/video0 -c:v libx264 -c:a aac -strict experimental -f hls -hls_time 10 -hls_list_size 0 /path/to/hls/files/stream_name.m3u8
(-hls_time 10
表示每片10秒,-hls_list_size 0
表示保留所有片段)。
播放地址:http://yourdomain.com/hls/stream_name.m3u8
(支持HTML5播放器,如<video src="..."></video>
)。
/var/www/videos
、/path/to/hls/files
)的权限设置为777
(或至少755
),避免Nginx无法读取文件;sudo ufw allow 80/tcp
、sudo ufw allow 1935/tcp
命令设置;gzip
压缩(减少传输体积)、expires
缓存(提升重复访问速度),或使用CDN加速视频分发。通过以上步骤,Ubuntu系统可通过域名实现视频服务,满足点播、直播等多种需求。具体配置可根据实际场景(如视频格式、延迟要求)调整。