成都专做婚介网站的公司,深圳响应式网站建设,通信科技网站设计,建设网站如何写文案1.什么是ffmpeg
ffmpeg即使一款音视频编解码工具#xff0c;同时也是一组音视频编解码开发套件#xff0c;作为编解码开发套件#xff0c;它为开发者提供了丰富的音视频处理的调用接口。
ffmpeg提供了多种媒体格式的封装和解封装#xff0c;包括多种音视频编码、多种协议…1.什么是ffmpeg
ffmpeg即使一款音视频编解码工具同时也是一组音视频编解码开发套件作为编解码开发套件它为开发者提供了丰富的音视频处理的调用接口。
ffmpeg提供了多种媒体格式的封装和解封装包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等 ffmpeg框架提供了多种丰富的插件模块包含封装和解封装的插件、编码与解码的插件等。
FFmpeg在Linux平台下开发但它同样也可以在其它操作系统环境中编译运行包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准前面的FF代表Fast Forward。 FFmpeg编码库可以使用GPU加速。 ffmpeg中文文档
2.ffmpeg的模块
libavformat
用于各种音视频封装格式的生成和解析包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能
libavcodec
用于各种类型声音/图像编解码,包括目前多媒体领域中绝大多数常用的编解码格式
libavutil
包含一些公共的工具函数
ibswscale
用于视频场景比例缩放、色彩映射转换
libpostproc
用于后期效果处理
libavfilter
一个通用的音频、视频、字幕等滤镜处理框架可以用其做一些音视频处理如音视频倍速、水平翻转、裁剪、加方框、叠加文字等功能
libavdevice
可以读取电脑或其他设备上的多媒体设备的数据或者输出到指定的多媒体设备上
libswresample
提供了高级别的音频重采样API
3.常用命令模板
3.1.转格式
转换视频格式该命令将 MP4 格式的视频转换为 AVI 格式。
ffmpeg -i input.mp4 output.avi转换音频格式该命令将 MP3 格式的音频转换为 Ogg 格式。
ffmpeg -i input.mp3 output.ogg提取视频中的音频该命令从输入视频中提取音频并将其保存为 AAC 格式。
ffmpeg -i input.mp4 -vn -acodec copy output.aac转换视频为 GIF该命令将输入视频转换为 GIF 动画先生成调色板再将其应用于视频。
ffmpeg -i input.mp4 -vf scale320:-1:flagslanczos,palettegen -y palette.pngffmpeg -i input.mp4 -i palette.png -filter_complex scale320:-1:flagslanczos[x];[x][1:v]paletteuse -y output.gif
提取视频帧该命令从输入视频中提取每秒钟的一帧并将这些帧保存为 PNG 格式的图像文件。
ffmpeg -i input.mp4 -r 1 -f image2 output-%03d.png
提取某一帧该命令从输入视频中提取第30秒的一帧并将这些帧保存为 PNG 格式的图像文件。
ffmpeg -i input.mp4 -ss 00:00:30 -frames:v 1 output-30.png
3.2.修改视频
调整视频大小该命令将输入视频的分辨率调整为 640x360 并将输出保存为 MP4 格式。
ffmpeg -i input.mp4 -vf scale640:360 output.mp4
添加水印该命令在输入视频的左上角添加一个水印并将输出保存为 MP4 格式。
ffmpeg -i input.mp4 -i watermark.png -filter_complex overlay10:10 output.mp4
调整音频音量该命令将输入音频的音量调整为原来的 2 倍并将输出保存为 MP3 格式。
ffmpeg -i input.mp3 -af volume2 output.mp3压缩视频该命令将输入视频压缩为分辨率为 640x 的视频并使用 H.264 编码器进行编码。压缩质量由 CRF 参数控制值越小压缩质量越高。Preset 参数控制编码速度值越小编码速度越快但压缩质量可能会降低。
ffmpeg -i input.mp4 -vf scale640:-1 -c:v libx264 -crf 23 -preset veryfast -c:a copy output.mp4
添加字幕该命令将输入视频与字幕文件结合将字幕文件编码为 mov_text 格式将输出保存为 MP4 格式。
ffmpeg -i input.mp4 -i subtitle.srt -c:v copy -c:a copy -c:s mov_text -metadata:s:s:0 languageeng output.mp4
旋转视频该命令将输入视频逆时针旋转 90 度并将输出保存为 MP4 格式。
ffmpeg -i input.mp4 -vf transpose1 -c:a copy output.mp4修改视频的帧率该命令将输入视频的帧率修改为 30 帧每秒然后使用 H.264 编码器进行编码。
ffmpeg -i input.mp4 -r 30 -c:v libx264 -crf 23 -preset veryfast -c:a copy output.mp4
3.3.拼接剪辑
裁剪视频该命令从输入视频的第 10 秒开始裁剪裁剪时长为 20 秒然后将裁剪后的视频保存为 MP4 格式。
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 -c copy output.mp4
合并多个视频文件该命令将两个 MP4 格式的视频文件合并为一个文件并将其保存为 MP4 格式。
ffmpeg -i concat:input1.mp4|input2.mp4 -c copy output.mp4
分离视频的音频和视频流该命令将输入视频的音频流和视频流分别保存为 MP3 和 MP4 格式的文件。
ffmpeg -i input.mp4 -vn audio.mp3ffmpeg -i input.mp4 -an -vcodec copy video.mp4
合并音频和视频
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4
如果视频中已经包含了音频这个时候还可以替换视频中的音频使用下面命令行。
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental-map 0:v:0 -map 1:a:0 output.mp4
拼接音频文件该命令将两个 MP3 格式的音频文件拼接为一个文件并将其保存为 MP3 格式。
ffmpeg -i concat:input1.mp3|input2.mp3 -acodec copy output.mp3
裁剪音频该命令从输入音频的第 30 秒开始裁剪裁剪时长为 2 分钟然后将裁剪后的音频保存为 MP3 格式。
ffmpeg -i input.mp3 -ss 00:00:30 -t 00:02:00 -acodec copy output.mp3