日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx 学习笔记(五)nginx-vod-module 模块

發布時間:2025/3/20 Nginx 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx 学习笔记(五)nginx-vod-module 模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nginx-vod-module

一、編譯

./configure \ --user=www \ --group=www \ --prefix=/usr/local/openresty \ --with-debug \ --with-luajit \ --with-file-aio \ --with-threads \ --with-cc-opt="-O3" \ --with-http_v2_module \ --with-http_realip_module \--with-http_gzip_static_module \ --with-http_ssl_module \ --with-openssl=/usr/local/ssl \ --with-openssl-opt="enable-tlsext" \ --without-http_redis2_module \ --with-http_iconv_module \ --with-http_stub_status_module \ --with-http_xslt_module \--add-dynamic-module=/home/www/build/nginx-vod-module

推薦設置:

  • --with-file-aio?- 啟用異步I / O支持,強烈建議,僅與本地和映射模式相關
  • --with-threads(nginx 1.7.11+) - 使用線程池(也需要vod_open_file_thread_pool在nginx.conf中)啟用異步文件,僅與本地和映射模式相關
  • --with-cc-opt="-O3"- 啟用額外的編譯器優化(與nginx默認值相比,mp4解析時間和幀處理時間減少了大約8%-O)
  • 調試設置:

  • --with-debug- 啟用調試消息(也需要傳入nginx.conf?debug中的error_log指令)。
  • --with-cc-opt="-O0"?- 禁用編譯器優化(用gdb進行調試)
  • 移植文件

    cp -f /home/www/build/openresty-1.13.6.1/build/nginx-1.13.6/objs/ngx_http_vod_module.so /usr/local/openresty/nginx/modules/ngx_http_vod_module.socp -f /home/www/build/openresty-1.13.6.1/build/nginx-1.13.6/objs/nginx /usr/local/openresty/nginx/sbin/nginx

    重啟服務

    sudo service nginx restart Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

    》》今天發現了一個好辦法,通過以上啟動服務器是不報錯的,直接啟動不起來,不管什么錯誤都是提示以上錯誤信息,今天終于找到辦法了,那就是運行Nignx二進制文件,會有錯誤日志輸出哦

    sudo ../../sbin/nginx nginx: [emerg] unknown directive "vod_mode" in /usr/local/openresty/nginx/conf/vhost/nginx.vod.module.conf:3

    遇到的錯誤:

    nginx: [emerg] unknown directive "vod_moov_cache" in /usr/local/openresty/nginx/conf/vhost/nginx.vod.module.conf:7

    解決:https://github.com/kaltura/nginx-vod-module/issues/739

    網址結構

    一、基本的網址結構

    URI 的基本結構是:?http://<domain>/<location>/<fileuri>/<filename>

    • domain - nginx-vod-module服務器的域
    • location - 在nginx conf中指定的位置
    • fileuri - 一個到mp4文件的URI:
      • 本地模式 - 完整的文件路徑是根據根/別名nginx.conf指令確定的
      • 映射模式 - 完整的文件路徑是根據從上游/本地文件接收到的JSON來確定的
      • 遠程模式 - mp4文件是從上游塊中讀取的
      • 注意:在映射模式和遠程模式下,上游請求的URL是http://<upstream>/<location>/<fileuri>?<extraargs>(extraargs由vod_upstream_extra_args參數決定)
    • 文件名 - 詳細如下
      • domain:vod.tinywan.com
      • location:location /vod { }
      • fileuri:/home/www/ffmpeg/  

    本地模式測試

    server {listen 8384;# vod cachesvod_metadata_cache metadata_cache 256m;vod_response_cache response_cache 128m;# vod settingsvod_mode local;vod_segment_duration 2000; # 2svod_align_segments_to_key_frames on;#file handle caching / aioopen_file_cache max=1000 inactive=5m;open_file_cache_valid 2m;open_file_cache_min_uses 1;open_file_cache_errors on;aio on;location /hls/ {alias /home/www/ffmpeg/;vod hls;add_header Access-Control-Allow-Headers '*';add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';add_header Access-Control-Allow-Origin '*';expires 100d;}}

    MP4文件路徑

    www@TinywanAliYun:~/ffmpeg$ pwd /home/www/ffmpeg www@TinywanAliYun:~/ffmpeg$ ls -lh nginx_vod_test.mp4 -rwxrwxrwx 1 www www 340M Dec 18 2013 nginx_vod_test.mp4

    注:MP4文件的權限是775

    播放URL:http://127.0.0.1:8384/hls/nginx_vod_test.mp4/index.m3u8

    二、多個網址結構

    多個網址用于在單個網址上對多個網址進行編碼。例如,可以使用多個URL來指定應包含在DASH MPD中的幾個不同MP4文件的URL。

    多個URL的結構是:?http://<domain>/<location>/<prefix>,<middle1>,<middle2>,<middle3>,<postfix>.urlset/<filename>

    上面的示例網址代表3個網址:

    • http://<domain>/<location>/<prefix><middle1><postfix>/<filename>
    • http://<domain>/<location>/<prefix><middle2><postfix>/<filename>
    • http://<domain>/<location>/<prefix><middle3><postfix>/<filename>

    后綴.urlset(可以使用vod_multi_uri_suffix更改)表示該URL應被視為多個URL。例如,URL?http://example.com/hls/videos/big_buck_bunny_,6,9,15,00k.mp4.urlset/master.m3u8將返回一個包含以下內容的清單:

    • http://example.com/hls/videos/big_buck_bunny_600k.mp4/index.m3u8
    • http://example.com/hls/videos/big_buck_bunny_900k.mp4/index.m3u8
    • http://example.com/hls/videos/big_buck_bunny_1500k.mp4/index.m3u8

    三、網址路徑參數

    URL路徑支持以下參數:

    • clipFrom - 自視頻開始以來的偏移量(以毫秒為單位),其中生成的流應該開始。例如,.../clipFrom/10000/...將生成一個流10秒開始的視頻流。
    • clipTo - 自視頻開始以來的偏移量(以毫秒為單位),其中生成的流將結束。例如,.../clipTo/60000/...將生成一個截斷到60秒的流。
    • 軌道 - 可用于選擇特定的音頻/視頻軌道。參數的結構是:v<id1>-v<id2>-a<id1>-a<id2>...?例如,.../tracks/v1-a1/...將選擇第一個視頻軌道和第一個音軌。默認是包含所有曲目。
    • 移位 - 可用于將時間轉換應用于一個或多個流。參數的結構是:v<vshift>-a<ashift>-s<sshift>?例如,.../shift/v100/...將100ms的正向移位應用到視頻時間戳。

    四、文件名結構

    文件名的結構是:?<basename>[<seqparams>][<fileparams>][<trackparams>][<langparams>].<extension>

    • basename +擴展名 - 選項集是打包者特定的(下面的列表適用于默認設置):seqparams - 可用于通過id(在映射JSON中提供)來選擇特定序列,例如master-sseq1.m3u8。fileparams - 可用于在使用多個URL時按索引選擇特定序列。例如,manifest-f1.mpd將僅從第一個URL返回一個MPD。trackparams - 可用于選擇特定的音頻/視頻軌道。例如,manifest-a1.f4m將返回僅包含每個序列的第一個音頻流的F4M。默認是包含每個文件的第一個音頻和第一個視頻軌道。在文件名中選擇的曲目與使用/ tracks / path參數選擇的曲目進行AND運算。v0 / a0分別選擇所有視頻/音頻軌道。a / v參數可以與f / s結合,例如f1-v1-f2-a1 = file1的video1 + file2的audio1,f1-f2-v1 = file1的video1 + file2的video1。
      • dash - manifest.mpd
      • hds - manifest.f4m
      • hls主播放列表 - master.m3u8
      • hls媒體播放列表 - index.m3u8
      • mss - 清單
      • thumb -?thumb-<offset>[<resizeparams>].jpg(偏移量是以毫秒為單位的縮略圖視頻偏移量)
      • volume_map -?volume_map.csv
    • langparams - 可用于根據語言(ISO639-3代碼)過濾音軌/字幕。例如,master-leng.m3u8將只返回英文音軌。
    • resizeparams - 可用于調整返回的縮略圖圖像。例如,thumb-1000-w150-h100.jpg在視頻中捕獲縮略圖1秒,并將其大小調整為150x100。如果省略其中一個尺寸,則設置其值以使得生成的圖像保持視頻幀的縱橫比。

    五、映射響應格式

    當配置為在映射模式下運行時,nginx-vod-module向配置的上游服務器發出HTTP請求,以便接收它應該生成的媒體流的布局。響應必須采用JSON格式。

    本部分包含幾個簡單的示例,后面是對支持的對象和字段的引用。但首先,有幾個定義:

  • Source Clip?- 從單個媒體文件中提取的一組音頻和/或視頻幀(音軌)
  • Generator?- 可以生成音頻/視頻幀的組件。目前,唯一支持的發生器是無聲發生器。
  • Filter?- 可以應用于音頻/視頻幀的操作。支持以下過濾器:
      • 速率(速度)變化 - 適用于音頻和視頻
      • 音量變化
      • 混合 - 可用于將多個音軌合并在一起,或將源A的音頻與源B的視頻合并
  • Clip?- 在一組源剪輯上應用零個或多個過濾器的結果
  • Dynamic Clip?- 內容未知的剪輯,例如有針對性的廣告內容
  • Sequence?- 一組應該一個接一個播放的剪輯。
  • Set?- 幾個序列一起作為自適應集合播放,每個序列必須具有相同數量的剪輯。
  • 六、簡單的映射

    下面的JSON將請求URI映射到單個MP4文件:

    {"sequences": [{"clips": [{"type": "source","path": "/path/to/video.mp4"}]}] }

    當使用多個URL時,這是唯一允許的JSON模式。換句話說,使用多個URL來組合更復雜的JSON是不可能的。

    映射模式測試(使用json文件播放一個mp4文件)

    JSON文件

    www@TinywanAliYun:~/data/vod-json$ pwd /home/www/data/vod-json www@TinywanAliYun:~/data/vod-json$ cat tinywan.json {"sequences": [{"clips": [{"type": "source", "path": "/home/www/ffmpeg-data/59f81ac0f1ec2.mp4"}]}] }

    虛擬主機

    server {listen 8384;# vod cachesvod_metadata_cache metadata_cache 256m;vod_response_cache response_cache 128m;# vod settingsvod_mode mapped;vod_segment_duration 2000; # 2svod_align_segments_to_key_frames on;#file handle caching / aioopen_file_cache max=1000 inactive=5m;open_file_cache_valid 2m;open_file_cache_min_uses 1;open_file_cache_errors on;aio on;# json file play hlslocation /json_hls/ {add_header Access-Control-Allow-Headers '*';add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';add_header Access-Control-Allow-Origin '*';vod hls;alias /home/www/data/vod-json/;}}

    注:這里一定是映射模式

    VLC播放測試:http://nginx-vod.tinywan.com:8384/json_hls/tinywan.json/index.m3u8

    測試結果:

    ?說明:當然了tinywan.json 文件我們是可以動態的修改,如:使用PHP去動態修改json文件中的MP4文件路徑,可以更換播放源,一旦換掉,以前的將會斷掉,重新播放新的源文件

    ?可能出現的錯誤,請檢查配置文件,是否為映射模式

    2017/11/27 21:20:56 [error] 8630#8630: *44 ngx_http_vod_identify_format: failed to identify the file format /home/www/data/vod-json/video.json while reading media header,

    七、自適應集

    作為使用多個URL的替代方案,可以通過JSON定義自適應集:

    {"sequences": [{"clips": [{"type": "source","path": "/path/to/bitrate1.mp4"}]},{"clips": [{"type": "source","path": "/path/to/bitrate2.mp4"}]}] }

    上面的暫時不能夠播放,待解決?????

    提示錯誤:

    2017/11/27 21:59:12 [error] 8750#8750: *637 ngx_http_vod_validate_streams: one stream at most per media type is allowed video=2 audio=2 while getting mapping,

    ?

    八、播放列表

    下面的JSON會播放35秒的視頻1和22秒的視頻2:

    ?tinywan_multiple_durations.json 文件

    {"durations": [ 35000, 22000 ],"sequences": [{"clips": [{"type": "source","path": "/home/www/ffmpeg-data/59fb2eba73a57.mp4"},{"type": "source","path": "/home/www/ffmpeg-data/59f81ac0f1ec2.mp4"}]}] }

    ?VLC播放測試:http://nginx-vod.tinywan.com:8384/json_hls/tinywan_multiple_durations.json/index.m3u8

    ?

    前35s播放:59fb2eba73a57.mp4

    后22s播放:59f81ac0f1ec2.mp4

    過濾器

    下面的JSON將視頻1播放到x1.5,并將結果的音頻與視頻2的音頻混合,然后將其降低到50%音量:

    {"sequences": [{"clips": [{"type": "mixFilter","sources": [{"type": "rateFilter","rate": 1.5,"source": {"type": "source","path": "/path/to/video1.mp4"}},{"type": "gainFilter","gain": 0.5,"source": {"type": "source","path": "/path/to/video2.mp4","tracks": "a1"}}]}]}] }

    連續直播

    下面的JSON是一個連續的直播流(=所有視頻具有完全相同的編碼參數的直播流)的示例。在實踐中,這個JSON必須由一些腳本生成,因為它依賴于時間。(有關示例實現,請參閱test / playlist.php)

    {"playlistType": "live","discontinuity": false,"segmentBaseTime": 1451904060000,"firstClipTime": 1451917506000,"durations": [83000, 83000],"sequences": [{"clips": [{"type": "source","path": "/path/to/video1.mp4"},{"type": "source","path": "/path/to/video2.mp4"}]}] }

    非連續的直播

    下面的JSON是非連續直播流(=視頻具有不同編碼參數的直播流)的示例。在實踐中,這個JSON必須由某個腳本生成,因為它是時間依賴的(參見test / playlist.php)

    {"playlistType": "live","discontinuity": true,"initialClipIndex": 171,"initialSegmentIndex": 153,"firstClipTime": 1451918170000,"durations": [83000, 83000],"sequences": [{"clips": [{"type": "source","path": "/path/to/video1.mp4"},{"type": "source","path": "/path/to/video2.mp4"}]}] }

    ?

    ?

    ?

    ?

    (1)編譯沒有啟用異步I / O支持(裸奔ngx-vod-module),播放一個MP4文件

    結論:打開的很慢,很卡,原因就是我服務帶寬太小了(1M啊),視頻卡頓原因,帶寬太小了,今天升級帶寬為5M,不會再出先卡頓現象

    ?(2)OSS下載一個文件進行播放,緩存不夠嗎?

    ?

    性能建議

    6、通過更改以下參數可以減少此模塊生成的流的復用開銷:

    • HDS - 設置vod_hds_generate_moof_atom為關閉
    • HLS - 設置vod_hls_mpegts_align_frames為關閉和vod_hls_mpegts_interleave_frames打開

    測試結果:

    #vod_hds_generate_moof_atom off; #vod_hls_mpegts_align_frames off; #vod_hls_mpegts_interleave_frames on;

    視頻每隔2幀就會一卡一卡的,不推薦。

    ?

    ?

    HLS

    ?

    HLS主播放列表文件的名稱(默認為m3u8擴展名)。

    vod_hls_index_file_name_prefix

    語法:vod_hls_index_file_name_prefix name

    默認:index

    背景:http,server,location

    描述:HLS媒體播放列表文件的名稱(隱含M3u8擴展名)。

    案例:vod_hls_index_file_name_prefix main;

    默認url地址為:../video/1510808170003.mp4/index.m3u8

    新播放url地址為:../video/1510808170003.mp4/main.m3u8

    ?

    vod_hls_segment_file_name_prefix

    語法:vod_hls_segment_file_name_prefix name

    默認:seg

    背景:http,server,location

    描述:段文件名的前綴,實際的文件名是:seg-<index>-v<video-track-index>-a<audio-track-index>.ts。

    案例:?vod_hls_segment_file_name_prefix tinywan;

    ?

    ?

    配置指令 - 性能

    ?

    vod_metadata_cache

    ?

    • 語法:vod_metadata_cache zone_name zone_size [expiration]
    • 默認:off
    • 背景:http,server,location

    ?

    配置視頻元數據緩存的大小和共享內存對象名稱。對于MP4文件,這個緩存保存moov原子。

    ?

    vod_mapping_cache

    ?

    • 語法:vod_mapping_cache zone_name zone_size [expiration]
    • 默認:off
    • 背景:http,server,location

    ?

    為vod配置映射緩存的大小和共享內存對象名稱(僅限映射模式)。

    ?

    vod_live_mapping_cache

    ?

    • 語法:vod_live_mapping_cache zone_name zone_size [expiration]
    • 默認:off
    • 背景:http,server,location

    ?

    配置實時映射緩存的大小和共享內存對象名稱(僅限映射模式)。

    ?

    vod_response_cache

    ?

    • 語法:vod_response_cache zone_name zone_size [expiration]
    • 默認:off
    • 背景:http,server,location

    ?

    配置響應緩存的大小和共享內存對象名稱。響應緩存包含清單和其他非視頻內容(如DASH初始段,HLS加密密鑰等)。視頻片段不被緩存。

    ?

    vod_live_response_cache

    ?

    • 語法:vod_live_response_cache zone_name zone_size [expiration]
    • 默認:off
    • 背景:http,server,location

    ?

    配置響應緩存的大小和共享內存對象名稱,以便更改實時響應。該緩存包含以下類型的響應:DASH MPD,HLS索引M3U8,HDS引導,MSS清單。

    ?

    vod_initial_read_size

    ?

    • 語法:vod_initial_read_size size
    • 默認:4K
    • 背景:http,server,location

    ?

    設置MP4文件的初始讀取操作的大小。

    ?

    vod_max_metadata_size

    ?

    • 語法:vod_max_metadata_size size
    • 默認:128MB
    • 背景:http,server,location

    ?

    設置支持的最大視頻元數據大小(對于MP4 - moov原子大小)

    ?

    vod_max_frames_size

    ?

    • 語法:vod_max_frames_size size
    • 默認:16MB
    • 背景:http,server,location

    ?

    設置單個段的幀的總大小限制

    ?

    vod_cache_buffer_size

    ?

    • 語法:vod_cache_buffer_size size
    • 默認:256K
    • 背景:http,server,location

    ?

    設置讀取MP4幀時使用的緩存緩沖區的大小。

    ?

    vod_open_file_thread_pool

    ?

    • 語法:vod_open_file_thread_pool pool_name
    • 默認:off
    • 背景:http,server,location

    ?

    啟用通過線程池打開的異步文件。線程池必須使用thread_pool指令定義,如果未指定池名稱,則使用默認池。當使用--add-threads進行編譯時,該指令僅在nginx 1.7.11或更新版本上受支持。注意:這個指令目前禁止nginx-vod-module使用nginx的open_file_cache

    ?

    vod_output_buffer_pool

    ?

    • 語法:vod_output_buffer_pool size count
    • 默認:off
    • 背景:http,server,location

    ?

    預先分配緩沖區以生成響應數據,從而節省每個請求的分配/釋放緩沖區的需求。

    ?

    vod_performance_counters

    ?

    • 語法:vod_performance_counters zone_name
    • 默認:off
    • 背景:http,server,location

    ?

    配置性能計數器的共享內存對象名稱

    ?

    ?

    ?

    配置指令 - DRM /加密

    ?

    vod_secret_key

    ?

    • 語法:vod_secret_key string
    • 默認:empty
    • 背景:http,server,location

    ?

    設置用于生成TS加密密鑰和DASH / MSS加密IV的種子。參數值可以包含變量,通常具有“secret- $ vod_filepath”結構。查看下面這個模塊添加的nginx變量列表。

    ?

    vod_encryption_iv_seed

    ?

    • 語法:vod_encryption_iv_seed string
    • 默認:empty
    • 背景:http,server,location

    ?

    設置用于生成加密IV的種子,目前僅適用于使用AES-128加密的HLS / fMP4。參數值可以包含變量。

    ?

    vod_drm_enabled

    ?

    • 語法:vod_drm_enabled on/off
    • 默認:off
    • 背景:http,server,location

    ?

    啟用后,模塊將根據從drm上游獲得的響應來加密媒體段。目前僅支持破折號和mss(播放就緒)。

    ?

    vod_drm_single_key

    ?

    • 語法:vod_drm_single_key on/off
    • 默認:off
    • 背景:http,server,location

    ?

    啟用時,模塊只請求第一個序列的drm信息并將其應用于所有序列。禁用時,需要為每個序列單獨請求DRM信息。此外,在DASH中,啟用此設置將使模塊將ContentProtection標簽置于AdaptationSet下,否則置于Representation下。

    ?

    vod_drm_clear_lead_segment_count

    ?

    • 語法:vod_drm_clear_lead_segment_count count
    • 默認:1
    • 背景:http,server,location

    ?

    設置流開始處的清除(未加密)分段的數量。明確的領先優勢使玩家無需等待許可證回應即可開始游戲。

    ?

    vod_drm_max_info_length

    ?

    • 語法:vod_drm_max_info_length length
    • 默認:4K
    • 背景:http,server,location

    ?

    設置從上游返回的drm信息的最大長度。

    ?

    vod_drm_upstream_location

    ?

    • 語法:vod_drm_upstream_location location
    • 默認:none
    • 背景:http,server,location

    ?

    設置應該用于獲取文件的DRM信息的nginx位置。

    ?

    vod_drm_info_cache

    ?

    • 語法:vod_drm_info_cache zone_name zone_size [expiration]
    • 默認:off
    • 背景:http,server,location

    ?

    配置drm信息緩存的大小和共享內存對象名稱。

    ?

    vod_drm_request_uri

    ?

    • 語法:vod_drm_request_uri uri
    • 默認:$vod_suburi
    • 背景:http,server,location

    ?

    設置drm信息請求的URI,參數值可以包含變量。在多url的情況下,$vod_suburi將是當前的子uri(每個子URL發出一個單獨的drm信息請求)

    ?

    vod_min_single_nalu_per_frame_segment

    ?

    • 語法:vod_min_single_nalu_per_frame_segment index
    • 默認:0
    • 背景:http,server,location

    ?

    設置最小片段索引(從1開始),應該假定每幀只有一個h264 nalu。如果該值為0,則不假定每幀nal個單元的數量。此設置僅影響啟用了DRM的DASH和MSS配置。

    ?

    當使用libx264轉碼視頻時,默認情況下,所有幀都有一個單獨的nal單元,除了第一個包含libx264版權信息的nalu幀。將此參數設置為大于0的值可以顯著提高性能,因為可以提前計算段的布局,從而使模塊能夠:

    ?

    • 在生成時輸出段緩沖區(不必等待整個段完成)
    • 避免對不需要段數據的請求進行幀處理(例如,HEAD,范圍0-0等)

    ?

    ?

    ?

    配置指令 - HLS

    ?

    vod_hls_encryption_method

    ?

    • 語法:vod_hls_encryption_method method
    • 默認:none
    • 背景:http,server,location

    ?

    設置HLS段的加密方法,允許值為:none(缺省),aes-128,sample-aes。

    ?

    vod_hls_force_unmuxed_segments

    ?

    • 語法:vod_hls_force_unmuxed_segments on/off
    • 默認:off
    • 背景:http,server,location

    ?

    啟用后,服務器將以不同于視頻流使用的音頻流的音頻流(使用EXT-X-MEDIA)

    ?

    vod_hls_container_format

    ?

    • 語法:vod_hls_container_format mpegts/fmp4/auto
    • 默認:auto
    • 背景:http,server,location

    ?

    設置HLS段的容器格式。默認行為是使用fmp4作為HEVC,否則使用mpegts(Apple不支持MPEG TS上的HEVC)。

    ?

    vod_hls_absolute_master_urls

    ?

    • 語法:vod_hls_absolute_master_urls on/off
    • 默認:on
    • 背景:http,server,location

    ?

    啟用后,服務器將返回主播放列表請求中的絕對播放列表URL

    ?

    vod_hls_absolute_index_urls

    ?

    • 語法:vod_hls_absolute_index_urls on/off
    • 默認:on
    • 背景:http,server,location

    ?

    啟用時,服務器將返回媒體播放列表請求中的絕對段URL

    ?

    vod_hls_absolute_iframe_urls

    ?

    • 語法:vod_hls_absolute_iframe_urls on/off
    • 默認:off
    • 背景:http,server,location

    ?

    啟用后,服務器將返回iframe播放列表請求中的絕對段URL

    ?

    vod_hls_master_file_name_prefix

    ?

    • 語法:vod_hls_master_file_name_prefix name
    • 默認:master
    • 背景:http,server,location

    ?

    HLS主播放列表文件的名稱(默認為m3u8擴展名)。

    ?

    vod_hls_index_file_name_prefix

    ?

    • 語法:vod_hls_index_file_name_prefix name
    • 默認:index
    • 背景:http,server,location

    ?

    HLS媒體播放列表文件的名稱(隱含M3u8擴展名)。

    ?

    vod_hls_iframes_file_name_prefix

    ?

    • 語法:vod_hls_iframes_file_name_prefix name
    • 默認:iframes
    • 背景:http,server,location

    ?

    HLS I幀播放列表文件的名稱(隱含M3u8擴展名)。

    ?

    vod_hls_segment_file_name_prefix

    ?

    • 語法:vod_hls_segment_file_name_prefix name
    • 默認:seg
    • 背景:http,server,location

    ?

    段文件名的前綴,實際的文件名是seg-<index>-v<video-track-index>-a<audio-track-index>.ts。

    ?

    vod_hls_init_file_name_prefix

    ?

    • 語法:vod_hls_init_file_name_prefix name
    • 默認:init
    • 背景:http,server,location

    ?

    init段文件名的名稱,只有在使用fmp4容器時才有意義。

    ?

    vod_hls_encryption_key_file_name

    ?

    • 語法:vod_hls_encryption_key_file_name name
    • 默認:encryption.key
    • 背景:http,server,location

    ?

    加密密鑰文件名的名稱,僅在加密方法不相關時才適用none。

    ?

    vod_hls_encryption_key_uri

    ?

    • 語法:vod_hls_encryption_key_uri uri
    • 默認:a url pointing to encryption.key
    • 背景:http,server,location

    ?

    設置EXT-X-KEY的URI屬性的值,僅在加密方法不相關時才有效none。參數值可以包含變量。

    ?

    vod_hls_encryption_key_format

    ?

    • 語法:vod_hls_encryption_key_format format
    • 默認:none
    • 背景:http,server,location

    ?

    設置EXT-X-KEY的KEYFORMAT屬性的值,僅在加密方法不相關時才相關none。

    ?

    vod_hls_encryption_key_format_versions

    ?

    • 語法:vod_hls_encryption_key_format_versions versions
    • 默認:none
    • 背景:http,server,location

    ?

    設置EXT-X-KEY的KEYFORMATVERSIONS屬性的值,僅在加密方法不相關時才有效none。

    ?

    vod_hls_mpegts_interleave_frames

    ?

    • 語法:vod_hls_mpegts_interleave_frames on/off
    • 默認:off
    • 背景:http,server,location

    ?

    當啟用時,HLS復用器交織不同流(音頻/視頻)的幀。禁用時,在音頻/視頻之間的每個開關上,復用器都會刷新MPEG TS數據包。

    ?

    vod_hls_mpegts_align_frames

    ?

    • 語法:vod_hls_mpegts_align_frames on/off
    • 默認:on
    • 背景:http,server,location

    ?

    啟用時,每個視頻/音頻幀均與MPEG TS數據包邊界對齊,根據需要添加填充。

    ?

    vod_hls_mpegts_output_id3_timestamps

    ?

    • 語法:vod_hls_mpegts_output_id3_timestamps on/off
    • 默認:on
    • 背景:http,server,location

    ?

    啟用后,將在每個TS段中輸出ID3 TEXT幀,其中包含帶絕對段時間戳的JSON。時間戳以自紀元(unixtime x 1000)以毫秒計算,JSON結構為:{"timestamp":1459779115000}

    ?

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的Nginx 学习笔记(五)nginx-vod-module 模块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。