網絡流媒體協議之HLS(二) HLS直播系統測試

一、HLS轉碼fmp4文件:

1、h264:

.\bin\ffmpeg -i .\input\bbb_sunflower_1080p_30fps_normal.h264 -loglevel verbose -vcodec libx264 -force_key_frames "expr:gte(t,n_forced*4)" -f hls -hls_time 4 -hls_list_size 10 -start_number 1 -hls_segment_type fmp4 -hls_fmp4_init_filename .\fmp4_x264\init.mp4 -t 44 .\fmp4_x264\playlist.m3u8

2、h265:

.\bin\ffmpeg -i .\input\bbb_sunflower_1080p_30fps_normal.h265 -loglevel verbose -vcodec libx265 -force_key_frames "expr:gte(t,n_forced*4)" -f hls -hls_time 4 -hls_list_size 10 -start_number 1 -hls_segment_type fmp4 -hls_fmp4_init_filename .\fmp4_x265\init.mp4 -t 44 .\fmp4_x265\playlist.m3u8
參數說明:-i: 輸入文件
		  -loglevel:輸出log
		  -vcodec:輸入文件的編碼格式
		  -force_key_frames:強制4s分割一個m4s
		  -f hls:格式 
		  -hls_time:hls片段(m4s)的duration
		  -hls_list_size:播放列表的個數
		  -start_number:起始的標號
		  -hls_segment_type:hls封裝格式(fmp4或ts)
		  -hls_fmp4_init_filename:init.mp4文件
		  -t 44:視頻分割的總時長
		  -hls_wrap:最大循環數 
		  m3u8文件:.\fmp4_x264\playlist.m3u8
	     -

二、HLS轉碼ts文件:

1、h264:

.\bin\ffmpeg -i .\input\input.mp4 -vcodec libx264 -f hls -hls_wrap 10 -hls_time 4 -hls_list_size 10 -t 44 .\ts_x264\playlist.m3u8

h265:

.\bin\ffmpeg -i .\input\bbb_sunflower_1080p_30fps_normal.h265 -vcodec libx265 -acodec libaac -force_key_frames "expr:gte(t,n_forced*4)" -f hls -hls_list_size 10 -hls_wrap 10 -hls_time 4  -t 44 .\ts_x265\playlist.m3u8

三、搭建ngnix服務器

解壓nginx軟件後,雙擊nginx.exe,注意路徑中不能有中文,設置端口不被佔用。將ffmpeg生成的ts片段和playlist.m3u8文件放在html目錄下。進入html目錄點擊index.html文件打開nginx服務,瀏覽器中顯示如下信息,則表示nginx服務器啓動成功。
在這裏插入圖片描述

四、測試

【note】:VCL只能測試ts流,不能測試fmp4流

1、ts流測試

搭建好nginx服務器後,可以使用VLC進行播放驗證。

  1. 打開VLC軟件,選擇 “媒體 - 打開網絡串流” 選項
    在這裏插入圖片描述

  2. 填入網絡串流的url,點擊 “播放” 按鈕
    url:http://127.0.0.1::1080/fmp4_x265/playlist.m3u8
    在這裏插入圖片描述

2、fmp4流測試

執行下面的批處理,將init.mp4和playlistx.m4s連接成完整的mp4文件。如果mp4文件播放成功,則說明測試成功。

  1. init.mp4包含頭信息(VPS、SPS、PPS等參數)
  2. playlist.m4s包含流媒體內容。
@echo off
:HLS generate
cd .>playlist.mp4
copy /b playlist.mp4+init.mp4 playlist.mp4
for /L %%a in (1,1,10) do (
copy /b playlist.mp4+playlist%%a.m4s playlist.mp4)
pause

五、參考鏈接

  1. ngnix服務器搭建
  2. ffmpeg命令之HLS切割ts流
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章