我有一个简单的nginx
服务器启动和运行,在其中我可以服务HLS准备的媒体内容(H 264/AAC编码的mp4视频),下面是我的nginx.conf
文件。
worker_processes 1;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application vod {
play /opt/video/vod; # videos are placed here.
}
}
}
通过访问rtmp://localhost/vod/video.mp4
,我可以播放存储在/opt/video/vod
中的video.mp4
。然而,我想把我的媒体组织在目录中,如movies
和series
在/opt/video/vod
中。但是当我这样做的时候,我就不能再播放视频了。例如,我不能播放rtmp://localhost/vod/series/video.mp4
。
有什么方法可以与nginx
一起工作吗?
发布于 2022-01-03 09:01:09
解决了这个问题,我误解了HLS
的工作原理。通过配置nginx
以通过特定路径为HLS
内容提供服务,任何实际的HLS
内容都可以从该路径中播放,因此可以从该路径播放H264
/AAC
编码的内容,并随附的*.m3u8
播放列表分割成*.ts
片段。下面是nginx.conf
。
rtmp {
server {
listen 1935;
application app {
live on;
# Don't allow RTMP playback
deny play all;
# Package streams as HLS
hls on;
hls_path /var/www/vod; # place your content here
hls_nested on;
hls_fragment_naming system;
}
}
}
若要准备HLS
内容,请使用ffmpeg
ffmpeg -i <input_video> -map 0 -codec:v libx264 -codec:a aac -f ssegment -segment_list playlist.m3u8 -segment_list_flags +live -segment_time 10 out%03d.ts
然后指向一个媒体播放器,例如VLC
在http://<ip>/vod/playlist.m3u8
,它会播放你的视频!这样你就可以用你喜欢的任何方式来划分你的vod
目录,例如vod/series/himym/1/1/playlist.m3u8
。
https://stackoverflow.com/questions/70549208
复制相似问题