周末教室放电影供应(httpserver+MP4分流+m3u8+videojs)

mp4转码m3u8

如果视频不为mp4格式,需先将视频转码为mp4,可使用如下命令进行转换

ffmpeg -i 本地视频地址 -y -c:v libx264 -strict -2 转换视频.mp4

1.将mp4格式转换为ts格式

ffmpeg -y -i 本地视频.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 转换视频.ts

2.将ts文件进行切片

ffmpeg -i 本地视频.ts -c copy -map 0 -f segment -segment_list 视频索引.m3u8 -segment_time 5 前缀-%03d.ts

m3u8的在线播放器

  • 原生video标签网页端只支持MP4、OGG、WebM的视频格式
  • 直播的视频格式一般为.m3u8,如果不行对video进行格外处理,可以采用video.js插件
  • video.js须配合第三方的videojs库videojs-contrib-hls.js来播放.m3u8视频
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>videoJs</title>
        <link rel="stylesheet" type="text/css" href="css/video-js.css">
        <script src="js/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://rm03.wscdn.hls.xiaoka.tv/live/fczjp0Dc_J60VGMN/playlist.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>

引用:

https://blog.csdn.net/psh18513234633/article/details/79312607
使用ffmpeg转码m3u8并播放
https://blog.csdn.net/boyit0/article/details/88579330
videojs 播放.M3U8格式视频

posted @ 2020-11-12 16:53  Linux-top  阅读(514)  评论(0编辑  收藏  举报