准備工作
下載 :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