M3u8:
從文件轉(zhuǎn)HLS直播欲虚,也就是生成m3u8文件:
./ffmpeg -re -i test.mp4 -c copy -f hls -bsf:v h264_mp4toannexb output.m3u8
其中 -bsf:v h264_mp4toannexb是將MP4中的H.264數(shù)據(jù)轉(zhuǎn)換為H.264AnnexB標(biāo)準(zhǔn)編碼,如果源文件是FLV铅匹、TS等可作為直播傳輸流的視頻划纽,則不需要此參數(shù)
EXT-X-TARGETDURATION:最大的分片時長走哺,整數(shù),四舍五入
EXT-X-MEDIA-SEQUENCE:直播切片序列摄闸,當(dāng)打開文件時以這個標(biāo)簽的值為參考赢乓。
EXT-X-ENDLIST:結(jié)束標(biāo)簽,如果沒有這個標(biāo)簽孵睬,都是從倒數(shù)第三片開始播放播歼,如果不滿三片則不播放。
EXTINF:為每一個分片的duration
EXT-X-DISCONTINUITY:前一分片與后一分片有不連續(xù)的時候播放可能會出錯掰读,需要這個標(biāo)簽荚恶,以播放當(dāng)前分片的duraiton時間刷新M3U8列表撩穿,然后做對應(yīng)的加載動作
EXT-X-STREAM-INF:
主要出現(xiàn)在多級M3U8文件中
AVERAGE-BANDWIDTH:當(dāng)播放EXT-STREAM-INF下對應(yīng)的M3U8時占用的平均碼率 可選
CODECS:聲明EXT-X-STREAM-INF下面對應(yīng)的音頻編碼、視頻編碼信息
FRAME-RATE:視頻幀率 可選
FFMpeg切片segment參數(shù):
將mp4轉(zhuǎn)m3u8谒撼,內(nèi)部格式依然是mp4:
只生成切片:
./ffmpeg -re -i test.mp4 -c copy -f segment -segment_format mp4 test_output_%d.mp4
生成切片以及m3u8:
./ffmpeg -re -i test.mp4 -c copy -f segment -segment_format mp4 -segment_list_type m3u8 -segment_list output.m3u8 test_output_%d.mp4
截取視頻:
截取前10秒
./ffmpeg -i test2.mp4 -c copy -t 10 -copyts output.mp4
從第6秒開始截仁彻选:
./ffmpeg -ss 6 -i test2.mp4 -c copy output_ss6.mp4
從第6秒開始截取10秒:
ffmpeg -ss 6 -i test2.mp4 -c copy -t 10 output_ss6_t10.mp4
指定起始播放時間為第5秒,小于這個時間的會放不出來:
./ffmpeg -i test2.mp4 -c copy -t 10 -output_ts_offset 5 output_s5.mp4
抽出音頻aac文件:
./ffmpeg -i test2.mp4 -vn -acodec copy output.aac
抽出視頻流H.264:
./ffmpeg -i test2.mp4 -vcodec copy -an output.h264
抽出視頻流H.265(測試無效廓潜?抵皱?):
./ffmpeg -i test2.mp4 -vcodec copy -an -bsf hevc_mp4toannext -f hevc output.hevc