这是我参与「第四届青训营 」笔记创作活动的第9天
概述
应用程序
在 FFmpeg 官网 下载对应平台的可执行程序包,下载解压后可在bin 文件夹下能看到三个可执行程序:
(具体下载及安装可见Windows下下载安装ffmpeg - 知乎 (zhihu.com))
ffmpeg:视频处理工具
ffplay:视频播放工具
ffprobe:视频分析工具
函数库
libavcodec:包含音视频编码器和解码器
libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
libavformat:包含多种多媒体容器格式的封装、解封装工具
libavfilter:包含多媒体处理常用的滤镜功能
libavdevice:用于音视频数据采集和渲染等功能的设备相关
libswscale:用于图像缩放和色彩空间和像素格式转换功能
libswresample:用于音频重采样和格式转换等功能
介绍
ffmpeg
ffmpeg 是强大的媒体文件转换工具,常用于转码,可选命令非常多,编码器、视频时长、帧率、分辨率、像素格式、采样格式、码率、裁剪选项、声道数等等都可以自由选择。
命令格式
ffmpeg [global_options] {[input_file_options] -iinput_url} ... {[output_file_options] output_url} ...
常用命令
ffmpeg -framerate 30 -f avfoundation -i0out.mp4 #录视频
ffmpeg -f avfoundation -i1 -r 30out.yuv #录屏
ffmpeg -i input.mp4 -acodeccopy -vnout.aac #抽取音频流
ffmpeg-iinput.mp4-an-c:vrawvideo-pixel_formatyuv420pout.yuv #处理原始数据
ffplay-swxhout.yuv #提取YUV数据
ffmpeg -i input.mp3 output.ogg #把一个MP3文件转换为OGG文件
ffmpeg -i input.mp4 output.webm #把一个MP4文件转换为webm文
...
(YUV是一种颜色化表示方式,与RGB相比,加入“亮度”这一概念。“Y”指亮度(Luma,)“U”和“V”指色度(Chroma))
命令具体信息及参数请见(blog.csdn.net/walkeryudev…)
ffplay
ffplay 用于播放媒体文件
常用命令
ffplay INPUT -loop 10 #循环播放 10 次
ffplay INPUT -ast 1 #播放视频中的第一路音频流
ffplay INPUT -vst 1 #播放视频中的第一路视频流
ffplay INPUT -x WIDTH -y HEIGHT #指定宽高播放
ffplay test.mp4 -an #禁用音频
ffplay test.mp4 -vn #禁用视频
ffprobe
ffprobe 收集多媒体文件或流的信息,并以人和机器可读的方式输出,以便查看媒体文件信息\
常用命令
ffprobe -h #查看ffprobe帮助
ffprobe filename #查看文件的简单信息
ffprobe -hide_banner filename #不显示欢迎信息
ffprobe -show_packets video.mp4 #获取当前视频所有帧包的大小和时间信息(命令行会逐个打印帧信息)
ffprobe -show_format filename #查看文件的格式、时长、码率等信息
ffprobe -show_frames filename #查看视频流文件的帧信息,从第一帧开始
ffprobe -show_streams filename #查看文件流信息
结语
有关ffmpeg内容非常多且繁杂,这儿只是很少一部分,更多内容请大家自行在网上查找。
推荐这篇文章:[总结]FFMPEG视音频编解码零基础学习方法