从文件转HLS直播,也便是天生m3u8文件:

./ffmpeg -re -i test.mp4 -c copy -f hls -bsf:v h264_mp4toannexb output.m3u8

个中 -bsf:v h264_mp4toannexb是将MP4中的H.264数据转换为H.264AnnexB标准编码,如果源文件是FLV、TS等可作为直播传输流的视频,则不须要此参数

php利用ffmpeg视频分片ffmpeg分片 m3u8以及视频截取 JavaScript

EXT-X-TARGETDURATION:最大的分片时长,整数,四舍五入

EXT-X-MEDIA-SEQUENCE:直播切片序列,当打开文件时以这个标签的值为参考。

EXT-X-ENDLIST:结束标签,如果没有这个标签,都是从倒数第三片开始播放,如果不满三片则不播放。

EXTINF:为每一个分片的duration

EXT-X-DISCONTINUITY:前一分片与后一分片有不连续的时候播放可能会出错,须要这个标签,以播放当前分片的duraiton韶光刷新M3U8列表,然后做对应的加载动作

加企鹅群788280672领取免费音视频学习资料

EXT-X-STREAM-INF: 紧张涌如今多级M3U8文件中

AVERAGE-BANDWIDTH:当播放

EXT-STREAM-INF下对应的M3U8时占用的均匀码率 可选

CODECS:声明EXT-X-STREAM-INF下面对应的音频编码、视频编码信息 FRAME-RATE:视频帧率 可选 FFMpeg切片segment参数:

将mp4转m3u8,内部格式依然是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

作者:gleeeli