【video】使用FFmpeg將avi / mp4文件轉換成m3u8/ts文件(用於近時播放)


准備工作

下載 :ffmpeg-N-102534-gec20b81302-win64-lgpl-shared.zip,並解壓,FFmpeg下載地址

 

 

 

 

配置環境變量:在path中配置bin目錄 (例如:F:\xxx\xxx\ffmpeg-20180227-fa0c9d6-win64-static\bin)
檢查是否配置成功:ffmpeg -version

開始轉換

官方文檔

官方文檔:英文文檔

轉換格式 

avi 轉換成 mp4 命令:ffmpeg -i lucene.avi lucene.mp4

avi 轉成mp3:ffmpeg -i lucene.avi lucene.mp3

avi 轉成gif:ffmpeg -i lucene.avi lucene.gif

生成m3u8/ts文件

第一步:先將avi視頻轉成mp4(也可以直接將avi轉為m3u8/ts)

ffmpeg.exe -i  lucene.avi -c:v libx264 -s 1280x720 -pix_fmt yuv420p -b:a 63k -b:v 753k -r 18 .\lucene.mp4

這里是引用-c:v 視頻編碼為x264 ,x264編碼是H264的一種開源編碼格式。

-s 設置分辨率

-pix_fmt yuv420p:設置像素采樣方式,主流的采樣方式有三種,YUV4:4:4,YUV4:2:2,YUV4:2:0,它的作用是根據采樣方式來從碼流中還原每個像素點的YUV(亮度信息與色彩信息)值。

-b 設置碼率,-b:a和-b:v分別表示音頻的碼率和視頻的碼率,-b表示音頻加視頻的總碼率。碼率對一個視頻質量有很大的作用,后邊會介紹。

-r:幀率,表示每秒更新圖像畫面的次數,通常大於24肉眼就沒有連貫與停頓的感覺了。

第二步:將mp4生成m3u8

ffmpeg -i  lucene.mp4   -hls_time 10 -hls_list_size 0  -hls_segment_filename ./hls/lucene_%05d.ts ./hls/lucene.m3u8

-hls_time 設置每片的長度,單位為秒

-hls_list_size n: 保存的分片的數量,設置為0表示保存所有分片

-hls_segment_filename :段文件的名稱,%05d表示5位數字

生成的效果是:將lucene.mp4視頻文件每10秒生成一個ts文件,最后生成一個m3u8文件,m3u8文件是ts的索引文件

 

 video.js播放hls示例:https://www.cnblogs.com/vickylinj/p/14768383.html

 hls.js播放示例:https://www.cnblogs.com/vickylinj/p/14768536.html

參考:https://blog.csdn.net/weixin_38168050/article/details/105043874


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM