FFmpeg

FFmpeg是一个用于处理音视频的开源工具,支持多种操作系统,提供录制、转换和流化功能。它包含高效的libavcodec编解码库,可用于转码为MP4、MP3和GIF等格式。通过指定参数,如-c:v、-s和-b,可以进行码率控制和生成m3u8切片文件。码率的计算与视频质量和传输速度有关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

        FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

        FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括WindowsMac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。 [1]  FFmpeg编码库可以使用GPU加速。

安装 

FFmpeg 被许多开源项目采用, QQ 影音、暴风影音、 VLC 等。
下载:FFmpeg https://www.ffmpeg.org/download.html#build-windows

 

 

 将zip解压

 将bin目录配置到环境变量

 测试 ffmpeg -version 有输出安装成功

将一个 .avi 文件转成 mp4 mp3 gif 等。
比如我们将 lucene.avi 文件转成 mp4 ,运行如下命令:
ffffmpeg -i lucene.avi lucene.mp4

 

转成 mp3 ffffmpeg -i lucene.avi lucene.mp3
转成 gif ffffmpeg -i lucene.avi lucene.gif

基本使用

 生成m3u8/ts文件

 使用ffffmpeg生成 m3u8的步骤如下:

第一步:先将avi视频转成mp4

ffmpeg.exe ‐i lucene.avi ‐c:v libx264 ‐s 1280x720 ‐pix_fmt yuv420p ‐b:a 63k ‐b:v 753k ‐r 18
.\lucene.mp4
下面把各参数意思大概讲讲,大概了解意思即可,不再此展开流媒体专业知识的讲解。
  • -c:v 视频编码为x264 x264编码是H264的一种开源编码格式。
  • -s 设置分辨率
  • -pix_fmt yuv420p:设置像素采样方式,主流的采样方式有三种,YUV4:4:4YUV4:2:2YUV4:2:0,它的作用是
  • 根据采样方式来从码流中还原每个像素点的YUV(亮度信息与色彩信息)值。
  • -b 设置码率,
  • -b:a-b:v分别表示音频的码率和视频的码率,
  • -b表示音频加视频的总码率。码率对一个视频质量有很大的作用,后边会介绍。
  • -r:帧率,表示每秒更新图像画面的次数,通常大于24肉眼就没有连贯与停顿的感觉了。

第二步:将mp4生成m3u8

ffmpeg ‐i lucene.mp4 ‐hls_time 10 ‐hls_list_size 0 ‐hls_segment_filename
./hls/lucene_%05d.ts ./hls/lucene.m3u8
  • -hls_time 设置每片的长度,单位为秒
  • -hls_list_size n: 保存的分片的数量,设置为0表示保存所有分片
  • -hls_segment_fifilename :段文件的名称,%05d表示5位数字
生成的效果是:将 lucene.mp4 视频文件每 10 秒生成一个 ts 文件,最后生成一个 m3u8 文件, m3u8 文件是 ts 的索引 文件。
使用 VLC 打开 m3u8 文件,测试播放效果, VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多 媒体文件,以及 DVD 、音频 CD VCD 及各类流媒体协议。( http://www.videolan.org/

 码率

码率又叫比特率即每秒传输的 bit 数,单位为 bps(Bit Per Second) ,码率越大传送数据的速度越快。
码率的计算公式是:文件大小(转成 bit / 时长(秒) /1024 = kbps 即每秒传输千位数
例如一个 1M 的视频,它的时长是 10s ,它的码率等于
 1*1024*1024*8/10/1024 = 819Kbps
码率设置到多少才能达到最好,通过根据个人的经验或参考一些视频网台给出的参考,下图是优酷对码率的要求:

如果要将视频上传到优酷则必须按照上面的要求,如果是自己搭建视频服务器,码率设置不易过大,最终达到的视频清晰度满足业务需求即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值