一、ffmpeg
1、yuv和jpg转换
ffmpeg -i a.jpg -s 640x480 -pix_fmt yuv422p a.yuv
ffmpeg -pix_fmt yuv422p -s 640x480 -i a.yuv b.jpg
2、查看支持哪些格式
ffmpeg -pix_fmts
3、mp3转pcm
ffmpeg -i audio1.mp3 -f s16le audio1.pcm
-i 表示设定输入流
-f 表示设定输出格式
4、为视频添加logo水印
./ffmpeg -i input.mp4 -i test.png -filter_complex overlay output.mp4
overlay滤镜:
用法:ffmpeg -i input1 -i input2 -filter_complex overlay=x:y output
ffmpeg -i save-VGA.h264 -i test.png -filter_complex overlay=W-w:0 output_save-VGA.h264 右上角
ffmpeg -i save-VGA.h264 -i test.png -filter_complex overlay=W-w:H-h output_save-VGA.h264 右下角
5、抓取视频帧,存为jpeg图片
ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
-ss 开始时间
-t 总多长时间
-r 表示每一秒抓几帧
-q:v 表示存储jpeg的图像质量,一般2是高质量
6、视频剪切
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
7、视频编码格式转换
264-》265
ffmpeg -i input.mp4 -c:v libx265 output.mp4
ffmpeg -i save-VGA.h264 -c:v libx265 save-VGA.h265
8、视频裁剪
ffmpeg -i input.mp4 -filter_complex crop=320:240:0:0 -y output.mp4
crop=320:240:0:0为裁剪参数,crop=width:height:x:y,width 和 height 表示裁剪后的尺寸,x:y 表示裁剪区域的左上角坐标。
9、视频缩放
命令: ffmpeg -i input.mp4 -filter_complex scale=320:240 -y output.mp4
scale参数为宽高。
二、ffplay
1、ffplay播放一个yuyv422文件命令
ffplay -video_size 640x480 -pix_fmt yuyv422 pic.yuv
2、ffplay 播放pcm音频文件
ffplay -ar 44100 -ac 2 -f s16le -i audio1.pcm
-i 表示指定的输入文件
-f 表示强制使用的格式
-ar 表示播放的音频数据的采样率
-ac 表示播放的音频数据的通道数
3、ffplay播放h.264或h.265文件
ffplay save-720P.h265 (ES流)
ffplay save-720P.h264 (ES流)
ffplay 720P25.h264
ffplay 720P25.h265
三、ffprobe
ffprobe主要用来查看多媒体文件的信息。
-show_packets:[PACKET]标签的多媒体信息
-show_data: packets多媒体数据
-show_format:多媒体封装格式
-show_frames: 视频帧信息
-print_format: 信息输出格式,支持xml、csv、json、flat、ini
-select_streams: 参数可以是a、v、s分别表示只查看音频、视频、字幕
四、FFmpeg介绍
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了领先的音/视频编码库libavcodec等。
libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构
和读取音视频帧等功能;
libavcodec:用于各种类型声音/图像编解码;
libavutil:包含一些公共的工具函数;
libswscale:用于视频场景比例缩放、色彩映射转换;
libpostproc:用于后期效果处理;
ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等;
ffsever:一个 HTTP 多媒体即时广播串流服务器;
ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;