ffmpeg部署 使用 生成m3u8,ts文件

ffmpeg版本:ffmpeg-20190428-45048ec-win64-static

下载地址:FFmpeg  我这里测试可以用的已经上传至 ffmpeg-20190428-45048ec-win64-static.zip-编解码文档类资源-CSDN下载

步骤一:设置系统变量ffmpeg位置为解压文件的bin目录内

步骤二:区分文件系统将原视频放在一个文件夹新视频单独生成一个文件夹

步骤三:生成ts文件  命令参考如下:

       

ffmpeg -y -i D:\phpstudy_pro\WWW\1\demo.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb D:\phpstudy_pro\WWW\2\demo.ts

步骤四:生成m3u8格式文件 命令参考如下:

ffmpeg -i D:\phpstudy_pro\WWW\1\demo.mp4 -c:v libx264 -hls_time 60 -hls_list_size 0 -c:a aac -strict -2 -f hls D:\phpstudy_pro\WWW\2\demo.m3u8

播放的参考代码如下使用video.js:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>前端播放m3u8格式视频</title>
    <link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet">
    <script src='https://vjs.zencdn.net/7.4.1/video.js'></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js" type="text/javascript"></script>
    <!-- videojs-contrib-hls 用于在电脑端播放 如果只需手机播放可以不引入 -->
</head>
<body>
    <style>
        .video-js .vjs-tech {position: relative !important;}
    </style>
    <div>
        <video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" data-setup='{}' style='width: 100%;height: auto'>
            <source id="source" src="./2/demo.m3u8" type="application/x-mpegURL"></source>
        </video>
    </div>
    <div class="qiehuan" style="width:100px;height: 100px;background: red;margin:0 auto;line-height: 100px;color:#fff;text-align: center">切换视频</div>
</body>
 
<script>
    // videojs 简单使用
    var myVideo = videojs('myVideo', {
        bigPlayButton: true,
        textTrackDisplay: false,
        posterImage: false,
        errorDisplay: false,
    })
    myVideo.play()
    var changeVideo = function (vdoSrc) {
        if (/\.m3u8$/.test(vdoSrc)) { //判断视频源是否是m3u8的格式
            myVideo.src({
                src: vdoSrc,
                type: 'application/x-mpegURL' //在重新添加视频源的时候需要给新的type的值
            })
        } else {
            myVideo.src(vdoSrc)
        }
        myVideo.load();
        myVideo.play();
    }
    var src = './2/demo.m3u8';
    document.querySelector('.qiehuan').addEventListener('click', function () {
        changeVideo(src);
    })
</script>

接下来就可以套入自己的项目中了自由发挥

### 回答1: ffmpeg是一款功能强大的多媒体处理工具,它支持各种音视频格式的转换和处理。要实现自动下载m3u8视频并合并为ts格式,可以使用ffmpeg的命令行工具和一些脚本编程。 首先,需要编写一个脚本或程序来自动从指定的m3u8链接下载视频文件。可以使用编程语言(如Python)来实现这个脚本,使用HTTP请求库来获取m3u8文件的内容,并解析出各个ts分片的链接。 接下来,可以使用ffmpeg的命令行工具,利用解析到的ts分片链接来下载每个分片,并同时将它们合并为一个完整的ts视频文件。以下是示例的ffmpeg命令: ffmpeg -i "url_to_ts1" -c copy -bsf:a aac_adtstoasc output.ts 上述命令中,"url_to_ts1"表示第一个ts分片的链接,可以根据实际情况替换为对应的分片链接。"-c copy"表示复制原始编码格式,"-bsf:a aac_adtstoasc"用于修复aac音频流中的格式问题。"output.ts"表示最终生成的合并后的ts文件。 要实现自动下载并合并多个ts分片,可以在脚本中使用循环来依次下载每个分片,并调用ffmpeg命令行工具来合并这些分片。 需要注意的是,m3u8文件通常是分段加载的,因此可能需要等待所有分片下载完成才能合并为完整的视频文件。可以在脚本中增加相应的等待时间或轮询机制,确保所有分片都已下载完成后再调用ffmpeg进行合并操作。 总之,通过编写脚本或程序,结合ffmpeg命令行工具,可以实现自动下载m3u8视频并合并为ts格式的功能。 ### 回答2: ffmpeg是一个开源的音视频处理工具,它可以用来处理各种格式的音视频文件m3u8是一种常见的音视频流媒体播放列表格式,通常用于将一个音视频文件分割成多个小的ts文件,并通过HTTP协议进行传输和播放。 要使用ffmpeg自动下载m3u8并合并为ts文件,可以按照以下步骤进行操作: 1. 下载ffmpeg并安装到本地计算机上。 2. 在命令行中输入以下命令来下载m3u8文件: ```shell ffmpeg -i URL_OF_M3U8_FILE -c copy OUTPUT_FILENAME.ts ``` 其中,`URL_OF_M3U8_FILE`是m3u8文件的URL地址,`OUTPUT_FILENAME`是输出的ts文件名。 命令中的`-c copy`选项表示直接复制视频和音频流而不进行重新编码,以提高处理速度。 3. 执行命令后,ffmpeg将会自动下载m3u8文件,并将其合并为一个ts文件。合并过程可能需要一些时间,取决于m3u8文件的大小和网络状况。 4. 执行完成后,即可在当前目录下找到合并后的ts文件。 需要注意的是,以上命令仅适用于能够公开访问的m3u8文件。若m3u8文件需要身份验证或具有访问控制,请先确保具备合法的使用权限。 总之,使用ffmpeg自动下载m3u8并合并为ts文件,是一种便捷的处理方式,适用于需要分析或修改m3u8文件的情况。 ### 回答3: FFmpeg是一种强大的开源多媒体处理工具,它可以用于从网络上自动下载M3U8视频流,并将其合并为TS格式。M3U8是一种常用的流媒体播放列表文件格式,常用于存储视频的分段URL链接。 要使用FFmpeg自动下载并合并M3U8TS,我们可以使用以下命令行操作: 1. 首先,我们需要安装FFmpeg工具,并将其添加到系统路径中。 2. 然后,在命令行中输入以下命令: ``` ffmpeg -i [M3U8链接] -c copy -bsf:a aac_adtstoasc output.ts ``` 在此命令中,我们需要将[M3U8链接]替换为实际的M3U8文件的URL链接。该命令使用`-i`参数指定输入M3U8文件,`-c copy`参数用于复制视频和音频流,以保持原始质量,`-bsf:a aac_adtstoasc`参数用于处理AAC音频流的编码问题,`output.ts`为输出的合并后的TS文件名称。 3. 输入命令后,FFmpeg将自动开始下载M3U8文件并合并为TS格式。下载进度将在命令行中显示。 4. 下载完成后,我们将在当前目录中找到生成TS文件,这是M3U8下载和合并的结果。 总结起来,FFmpeg利用其强大的功能,可以方便地自动下载并合并M3U8视频流为TS格式。这在处理流媒体和视频下载方面非常有用,为用户提供了一种方便快捷的方法来获取他们所需的视频内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值