ffmpeg:Hyper fast Audio and Video encoder(超快音视频编码器)
ffplay:Simple media player (简单媒体播放器)
ffprobe:Simple multimedia streams analyzer(简单多媒体流分析器)
ffmpeg基本信息及使用
ffmpeg查看帮助文档:
基本信息:ffmpeg -h
高级信息:ffmpeg -h long
所有信息:ffmpeg -h full
输出信息到文件ffmpeg_h_full.log查看: ffmepg -h full > ffmpeg_h_full.log
查看具体分类所支持的参数 ffmepg -h type=name
比如:
ffmpeg -h muxer=flv
ffmpeg -h filter=atempo (atempo调整音频播放速率)
ffmpeg -h encoder=libx264
ffmpeg命令分类查询
-version 显示版本
-bsfs 显示可用比特流filter
-buildconf 显示编译配置
-protocols 显示可用的协议
-formats 显示可用格式 (muxers+demuxers)
-filters 显示可用的过滤器
-pix_fmts 显示可用的像素格式
-muxers 显示可用复用器
-demuxers 显示可用解复用器
-layouts 显示标准声道名称
-sample_fmts 显示可用的音频采样格式
-codecs 显示可用编解码器 (decoders+encoders)
-decoders 显示可用解码器
-encoders 显示可用编码器
-colors 显示可用的颜色名称
ffmpeg基本使用案例:修改视频编码格式和分辨率
ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx264 -s 1280x720 test_1280x720.flv
ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx265 -s 1280x720 test_1280x720.mkv
ffplay播放器控制
q, ESC退出播放
t 循环切换字幕流
f 全屏切换
c 循环切换节目
p, SPC 暂停
w 循环切换过滤器或显示模式
m 静音切换
s 逐帧播放
9, 0 9减少音量,0增加音量
left/right 向后/向前拖动10秒
down/up 向后/向前拖动1分钟
a 循环切换音频流
鼠标右键单击:拖动与显示宽度对应百分比的文件进行播放
鼠标左键双击:全屏切换
v 循环切换视频流
ffplay命令选项
-x width 强制显示宽度。
-y height 强制显示高度。
-pixel_format format 格式设置像素格式。
-video_size size帧尺寸 设置显示帧存储(WxH格式),仅适用于类似原始YUV等没有包含帧大小(WxH)的视频。
比如: ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
-fs 以全屏模式启动。
-an 禁用音频(不播放声音)
-vn 禁用视频(不播放视频)
-sn 禁用字幕(不显示字幕)
-ss pos 定位到某个时间点播放,注意时间单位:比如'55' 55seconds, '12:03:45' ,12 hours, 03 minutes and 45 seconds, '23.189' 23.189second
-t duration 设置播放视频/音频长度,时间单位如 -ss选项
-bytes 按字节进行定位拖动(0=off 1=on -1=auto)。
-seek_interval interval 自定义左/右键定位拖动间隔(以秒为单位),默认值为10秒(代码没有看到实现)
-nodisp 关闭图形化显示窗口,视频将不显示
-noborder 无边框窗口
-volume vol 设置起始音量。音量范围[0 ~100]
-f fmt 强制使用设置的格式进行解析。比如-f s16le
-window_title title 设置窗口标题(默认为输入文件名)
-loop number设置播放循环次数
-showmode mode 设置显示模式,可用的模式值:0 显示视频,1 显示音频波形,2 显示音频频谱。缺省为0,如果视频不存在则自动选择2
-vf filtergraph 设置视频滤镜
-af filtergraph 设置音频滤镜
-stats 打印多个回放统计信息,包括显示流持续时间,编解码器参数,流中的当前位置,以及音频/视频同步差值。默认情况下处于启用状态,要显式禁用它则需要指定-nostats。。
-fast 非标准化规范的多媒体兼容优化。
-genpts 生成pts。
-sync type 同步类型 将主时钟设置为audio(type=audio),video(type=video)或external(type=ext),默认是audio为主时钟。
-ast audio_stream_specifier 指定音频流索引,比如-ast 3,播放流索引为3的音频流
-vst video_stream_specifier指定视频流索引,比如-vst 4,播放流索引为4的视频流
-sst subtitle_stream_specifier 指定字幕流索引,比如-sst 5,播放流索引为5的字幕流
-autoexit 视频播放完毕后退出
-exitonkeydown 键盘按下任何键退出播放
-exitonmousedown 鼠标按下任何键退出播放
-codec:media_specifier codec_name 强制使用设置的多媒体解码器,media_specifier可用值为a(音频), v(视频)和s字幕。比如-codec:v h264_qsv 强制视频采用h264_qsv解码
-acodec codec_name 强制使用设置的音频解码器进行音频解码
-vcodec codec_name 强制使用设置的视频解码器进行视频解码
-scodec codec_name 强制使用设置的字幕解码器进行字幕解码
-autorotate 根据文件元数据自动旋转视频。值为0或1 ,默认为1。
-framedrop 如果视频不同步则丢弃视频帧。当主时钟非视频时钟时默认开启。若需禁用则使用 -noframedrop
-infbuf 不限制输入缓冲区大小。尽可能快地从输入中读取尽可能多的数据。播放实时流时默认启用,如果未及时读取数据,则可能会丢弃数据。此选项将不限制缓冲区的大小。若需禁用则使用-noinfbufffplay命
ffplay简单过滤器
视频旋转
ffplay -i test.mp4 -vf transpose=1
视频反转
ffplay test.mp4 -vf hflip
ffplay test.mp4 -vf vflip
视频旋转和反转
ffplay test.mp4 -vf hflip,transpose=1
音频变速播放
ffplay -i test.mp4 -af atempo=2
视频变速播放
ffplay -i test.mp4 -vf setpts=PTS/2
音视频同时变速
ffplay -i test.mp4 -vf setpts=PTS/2 -af atempo=2
ffmpeg 命令参数说明
主要参数:
◼ -i 设定输入流
◼ -f 设定输出格式(format)
◼ -ss 开始时间
◼ -t 时间长度
音频参数:
◼ -aframes 设置要输出的音频帧数
◼ -b:a 音频码率
◼ -ar 设定采样率
◼ -ac 设定声音的Channel数
◼ -acodec 设定声音编解码器,如果用copy表示原始编解码数据必须被拷贝。
◼ -an 不处理音频
◼ -af 音频过滤器
视频参数:
◼ -vframes 设置要输出的视频帧数
◼ -b 设定视频码率
◼ -b:v 视频码率
◼ -r 设定帧速率
◼ -s 设定画面的宽与高
◼ -vn 不处理视频
◼ -aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777
◼ -vcodec 设定视频编解码器,如果用copy表示原始编解码数据必须被拷贝。
◼ -vf 视频过滤器