原文地址:https://blog.csdn.net/u010312671/article/details/114583567
第一步(转化格式):将视频格式转换成mp4格式
第二步(压缩视频):ffmpeg -i D:\work\202103\1.mp4 -preset veryslow -crf 28 D:\work\202103\1Compress.mp4
第三步(转换成ts):ffmpeg -y -i D:\work\202103\1Compress.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb D:\work\202103\2.ts
第四步(切割视频):ffmpeg -i D:\work\202103\2.ts -c copy -map 0 -f segment -segment_list D:\work\202103\index.m3u8 -segment_time 30 D:\work\202103\nxb-%04d.ts
第五步(分段播放):live.html播放案例,根据生成的索引放到live.html进行播放即可进行分段播放
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link href="https://unpkg.com/video.js/dist/video-js.min.css" rel="stylesheet">
<script src="https://unpkg.com/video.js/dist/video.min.js"></script>
<script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script>
</head>
<body>
<section id="videoPlayer">
<video id="example-video" width="600" height="300" class="video-js vjs-default-skin vjs-big-play-centered" poster="">
<source src="http://10.100.xxx.xxx/vedio/eNHBmR1G/index.m3u8" type="application/x-mpegURL" id="target">
</video>
</section>
<script type="text/javascript">
var player = videojs('example-video', {
"poster": "",
"controls": "true"
}, function() {
this.on('play', function() {
console.log('正在播放');
});
//暂停--播放完毕后也会暂停
this.on('pause', function() {
console.log("暂停中")
});
// 结束
this.on('ended', function() {
console.log('结束');
})
});
</script>
</body>
</html>
制作gift
ffmpeg -y -ss 1:33:28 -t 22 -i input.mp4 -vf "scale=iw*0.3:ih*0.3,drawtext=x=(w-text_w)/2:y=h-40:fontsize=30:fontcolor=white:fontfile=C\\:/Windows/Fonts/STXINWEI.TTF:text='这是文字'" -r 15 output.gif
从 input.mp4 的 1:33:28 处开始截取 22 秒;输出尺寸缩小到输入的 0.3 倍;在输出图的中下部分添加文字,文字样式为白色、30像素、新魏;把输出 gif 图的帧率设为 15。
本文介绍了一种视频处理流程,包括视频格式转换、压缩、转码为TS格式、视频切割及通过M3U8索引实现直播流分段播放的方法。同时,提供了具体的ffmpeg命令示例和live.html播放页面代码。

7774

被折叠的 条评论
为什么被折叠?



