用 ffmpeg + m3u8-segment 将h264的ES流转换成m3u8的过程记录

from:http://blog.chinaunix.net/uid-8489474-id-4538230.html


苹果公司的 HLS(HTTP Live Streaming) 使用的是m3u8这种格式的传输协议,最近因工作需要对它进行了研究,
完成了一个最简单的demo,即HLS的服务器,可使用VLC来进行播放。
在这记录下过程:

一. CentOS6 Linux上编译ffmpeg
1. 源码下载ffmpeg-2.4.2.tar.bz2,下载地址:http://ffmpeg.org/releases/ffmpeg-2.4.2.tar.bz2
2. 编译时用到了x264,所以同时也下载last_x264.tar.bz2,下载地址:ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
3. 先编译x264:
./configure --disable-asm --enable-shared
make<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用FFmpegM3U8格式换为MP4的步骤如下: 1. 下载FFmpeg并安装。 2. 打开终端或命令提示符,进入M3U8文件所在的目录。 3. 运行以下命令:ffmpeg -i input.m3u8 -c copy output.mp4 其中,input.m3u8是要换的M3U8文件名,output.mp4是换后的MP4文件名。 4. 等待换完成,换时间根据文件大小和计算机性能而定。 5. 换完成后,可以在同一目录下找到换后的MP4文件。 注意:如果M3U8文件中包含多个分段文件,过程可能需要一些时间。 ### 回答2: FFmpeg是一个强大的自由软件,可以处理多种音视频文件格式。M3U8是流媒体协议之一,通常用于将一个视频切割成多个小块并且进行分段传输,以便于适应不同网络环境中的传输需求。而MP4则是一种常见的视频文件格式。 如果要将M3U8格式的视频文件换成MP4格式,可以使用FFmpeg来实现。以下是基本的步骤: 1. 下载并安装FFmpeg 首先需要在计算机上安装FFmpeg。在Linux系统中,可以使用命令行sudo apt-get install ffmpeg进行安装;在Windows系统中,请先下载 FFmpeg二进制文件包,然后将其解压缩到一个方便存取的文件夹中。 2. 下载M3U8文件 要将M3U8文件换为MP4文件,需要先下载M3U8文件。用浏览器打开M3U8文件链接(通常以.m3u8结尾),然后将其中的URL复制到文本编辑器中,保存为.m3u8格式的文件。 3. 使用FFmpeg进行换 在Windows中,在bin文件夹中打开命令提示符(Shift+右键),然后输入以下命令: ffmpeg.exe -i input.m3u8 -c copy output.mp4 其中,input.m3u8是输入的M3U8文件名,output.mp4是输出的MP4文件名。-c copy选项表示直接将音视频流从输入文件复制到输出文件中,以加快换速度。执行完该命令后,FFmpeg将开始换。 注意要更改指令中输入输出的文件名,以符合文件实际情况。 4. 等待换完成 换时间取决于换文件的大小和处理器的速度。等换完成,即可在指定的输出文件夹中找到换后的MP4视频。 总之,FFmpeg可以轻松地将M3U8格式的流媒体文件换成MP4格式,而且过程非常简便。 ### 回答3: FFmpeg是一个开源的音视频编码解码库,可以用来实现音视频的录制、码和播放等功能。而m3u8格式是一种基于HTTP协议的流媒体格式,可用于视频直播和点播等场景。在一些情况下,我们可能需要将m3u8格式的视频换为mp4格式的视频,以便于后续的处理或播放。 FFmpeg提供了丰富的命令行参数,可以实现各种码效果。在将m3u8格式换为mp4格式时,可以使用如下命令: ffmpeg -i input.m3u8 -c copy output.mp4 其中,-i参数指定输入文件为input.m3u8;-c copy参数指定使用原始编解码器进行复制,以保持视频和音频的原始质量;output.mp4则是输出文件的文件名。 需要注意的是,由于m3u8格式的视频可能由多个片段组成,因此在进行换时需要先将所有片段合并为一个文件。我们可以使用FFmpeg中的concat协议来实现该功能。具体操作步骤如下: 1. 创建一个名为filelist.txt的文件,其中列出了所有的片段,格式如下: file 'segment1.ts' file 'segment2.ts' file 'segment3.ts' ... 2. 运行以下命令将所有片段合并为一个文件: ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.ts 其中,-f concat参数指定使用concat协议;-safe 0参数指定禁止检测文件名,因为filelist.txt中的文件名可能无法通过安全检测;output.ts为输出文件名。 3. 最后再运行以下命令将合并后的ts文件换为mp4文件: ffmpeg -i output.ts -c copy output.mp4 需要注意的是,在进行换时可能会遇到一些编码格式不支持的问题。此时可以使用FFmpeg中的音视频过滤器来进行码,以保证输出文件的质量和兼容性。具体的过滤器使用方法可以参考FFmpeg官方文档或相关教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值