Update avaliable. Click RELOAD to update.
目录

音视频处理工具 FFmpeg 的 TOP 10 常用场景

2000px-FFmpeg_Logo FFmpeg 是一个开源的多媒体框架,它包含了一系列用于处理视频、音频和其他多媒体文件和流的库和工具。在LGPL或GPL许可下发布,可被用于个人和商业项目中。

FFmpeg能够处理几乎所有的视频和音频格式,它支持转换格式、编解码、录制、流媒体处理等功能。FFmpeg被广泛用于视频转换和流媒体解决方案中,如在线视频平台、转码服务以及个人视频处理等场景。

下面将以终端命令的形式介绍 FFmpeg 的常规使用场景,但 FFmpeg 不局限于在终端命令上使用,同时也提供各种编程语言的库,可程序集成调用使用。

ffmpeg 参数很多,下面不纠结解释各个参数的明细说明

1. 格式转换

视频格式互换,本地一条简单的命令即可完成,再也不需要安装类似 格式工厂 这样的程序

# 视频转换,avi 转 mp4
$ ffmpeg -i input.avi output.mp4

# 音频转换,mp3 转 wav
$ fffmpeg -i input.mp3 output.wav

# 视频转GIF
$ fffmpeg -i input.mov -r 15 file.gif

2. 提取视频中的音频

AI盛行的当下,AI数字人加音频模拟对话,提取音频必不可少

$ ffmpeg -i input.mp4 -vn output.mp3

3. 分段裁剪视频

找到点位,对视频裁剪,当然也可以使用其他软件程序完成

# -ss 哪里开始,-to 哪里结束
$ ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:20 -c copy output.mp4

4. 视频压缩大小

视频太大,对其压缩或者直接转成其他无损格式,注意视频保真

$ ffmpeg -i input.mp4 -b:v 1M -b:a 128k output.mp4

5. 给视频添加水印

水印功能的实现相当简单,下面是用图片作为水印,当然也可以使用文字

# 使用图片水印,右下角间隔5像素
$ ffmpeg -i input.mp4 -i watermark.png -filter_complex "W-w-5:H-h-5" output.mp4

6. 生成视频缩略图

缩略图用于视频预览,效果还是很不错的

$ ffmpeg -i input.mp4 -vf "thumbnail,scale=320:180" -frames:v 1 output.jpg

7. 视频分辨率

vip,vvip,没有开通?不好意思,给你个低分辨率的

# 分辨率小于原分辨率,能调大但会模糊
$ ffmpeg -i input.mp4 -s 1280x720 output.mp4

8. 添加字幕到视频

实用功能,结合字幕srt文件,可以直接烧录到视频中,为视频添加字幕内容

# 这种是字幕烧录到视频的方式,不可还原,即不能提取视频的字幕
$ ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" -c:v libx264 -preset medium -c:a copy output.mp4

9. 提取某帧为图片

没什么特别的,就是对视频某一帧截图

ffmpeg -i input.mp4 -ss 00:00:10 -frames:v 1 output.png

10. 视频分片与重组

视频分片常用于HTTP实时流式传输,因为不需要下载整个视频即可逐段播放,m3u8 文件保存播放的 ts 地址,分片加载,减少了缓冲时间。

10.1. 视频分片

# 将生成 m3u8 文件已经对应的 ts片段文件
$ ffmpeg -i output.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls output.m3u8

尝试将视频源文件mp4、m3u8以及ts文件放到服务器路径中,使用 http://127.0.0.1:8080/output.m3u8 的方式加载播放

10.2. 分片重组

既然可以将视频分片,能否通过分片的 m3u8 文件,重新合并为视频源文件

$ ffmpeg -i http://127.0.0.1:8080/output.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4

总结

偶尔做一些视频编辑,会用到很多大型视频编辑器,但往往对于短平快的操作,可以直接使用 FFmpeg 完成,接触下来,FFmpeg 功能十分强大,参数众多,可玩性很足。可以结合企业场景,使用编程的方式处理音视频,且大多数产品也是这样做的。

版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2024/03/top-10-common-use-cases-ffmpeg/