ffmpeg常用命令解析

ffprobe分析数据

分析音视频格式信息

ffprobe -show_format

[FORMAT]
filename=/Users/liuqi/Movies/Test/ToS-4k-1920.mov
nb_streams=2																					//说明容器有俩个流
nb_programs=0																					//表示不存在program信息
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000																		//正常显示的开始时间
duration=734.167000																		//容器文件的总时长(秒)
size=738876331																				//mov文件的大小
bit_rate=8051316																			//码率
probe_score=100																				//查找容器的得分
TAG:major_brand=qt																		
TAG:minor_version=512
TAG:compatible_brands=qt
TAG:encoder=Lavf54.29.104
[/FORMAT]

分析音视频流信息

ffprobe -show_streams

[STREAM]
index=0 //流的索引号
codec_name=h264 //流的编码名
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 //流的编码详细描述
profile=High //流的profile
codec_type=video //流的codec类型
codec_tag_string=avc1 // 流的codec tag 字符串
codec_tag=0x31637661 // 流的codec tag,也是字符串,只不过以16进制方式存储
width=1920 //视频的宽,流内容部分
height=800 //视频的高,流内容部分
coded_width=1920 // 编码视频的宽,编解码时的部分,对齐的数据,显示时不用
coded_height=800 // 编码视频的高,编解码时的部分,对齐的数据,显示时不用
has_b_frames=2 // IPB 帧排列时两个P之间包含两个B
sample_aspect_ratio=1:1 //像素点采样比例
display_aspect_ratio=12:5 // 显示图像比例
pix_fmt=yuv420p // 像素点格式
level=40 // 与profile一起出现,对应的是参考标准中有对应的参数描述
color_range=unknown //调色必备参数
color_space=unknown //调色必备参数
color_transfer=unknown  //调色必备参数
color_primaries=unknown //调色必备参数
field_order=progressive // 隔行扫描逐行扫描标识
r_frame_rate=24/1  // 实际帧率
avg_frame_rate=24/1 // 平均帧率
time_base=1/24 //时间基,通常和帧率有对应关系
start_pts=0 // 开始时间戳
start_time=0.000000 // 开始时间
duration_ts=17620 //duration 时间戳
duration=734.166667 // duration 时间
bit_rate=7862427 // 码率
max_bit_rate=N/A // 最大码率
bits_per_raw_sample=8 // 原始数据每个采样占位
nb_frames=17620 // 总帧数
extradata_size=42 // extradata 大小
TAG:language=eng // 这个是TAG,主要是展示语种
TAG:handler_name=VideoHandle // 句柄名
TAG:vendor_id=FFMP // 生成MP4文件的工具
TAG:encoder=libx264 // 视频编码器标识
[/STREAM]

输出包信息

ffprobe -show_packets v(只读取视频包) -of(定制信息格式) xml


        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        

pts是跟stream的timebase做时间转化之前的数值,而pts_time是timebase时基转化后的数值

输出帧信息

ffprobe -show_frames


        
            
                
            
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        

ffmpeg使用

命令行参数分布

ffmpeg [第一个输入文件对应的解析参数] -i 第一个输入文件名 [第二个输入文件对应的解析参数 ] -i 第二个输入文件名 [如果有第三个文件输入] [-i] [如果有第三个文件] [第一个输出文件对应的参数] [第一个输出文件名] [第二个输出文件对应的参数] [第二个输出文件名] [第三个输出文件对应的参数] [第三个输出文件名]

ffmpeg -help

ffmpeg -h type=name 查看基本信息

ffmpeg -h long type=name 初基本信息之外,更多高级操作的帮助内容

ffmpeg -h full type=name 输出所有的帮助信息

例如:ffmpeg -h muxer=flv || ffmpeg -h encoder=libx264

公共操作部分

  • -report:把日志输出到日志文件的参数
  • -v:设置日志级别

每个文件主要操作部分

  • -codec:vcodec(视频编码)、acodec(音频编码)、scodec(字幕编码)
  • -f:在后面是输出的封装格式。
  • -ss:定位文件开始时间。放到-i左边会比-i右边快很多,到关键帧是准确的。
  • -t:规定输出文件时间长度
  • -metadata:添加元信息
  • -filter_complex:可以输入、输出多个视频流或者音频流。

视频操作部分

  • -r:设置视频的帧率;
  • -vb:设置视频码率;
  • -vframes:设置视频输出的帧数;
  • -aspect:设置视频的宽高比;
  • -vn:关闭视频流处理操作,也就是屏蔽视频流;
  • -vf:给视频做简单滤镜处理,简单滤镜处理一般不支持多图层、多输入、多输出的滤镜。

音频操作部分

  • -ar:设置音频采样率;
  • -ab:设置音频码率;
  • -aframes:设置音频输出的帧数;
  • -ac:设置音频的声道数量
  • -an:关闭音频流处理操作,也就是屏蔽音频流
  • -af:给音频做简单滤镜处理,简单滤镜处理一般不支持多图层、多输入、多输出的滤镜;
  • -vol:设置音频的音量。

你可能感兴趣的:(音视频知识积累,ffmpeg,音视频)