ffmpeg编码支持与定制:
命令查看:
编码器支持./configure --list-encoders
常见编码有:AAC、H.264、H.265、MPEG4
解码器支持./configure --list-decoders
常见解码有:H.264、H.265、MPEG4、MP3
封装文件支持./configure --list-muxers
常见封装格式有:裸流(H.264、APC)、MPCM、MP3、MP4、FLV
解封装文件支持./configure --list-demuxers
常见解封装格式有:MP3、MP4、FLV、MOV、AVI
通信协议支持./configure --list-protocols
常见通信协议有:HTTP、RTMP、RTP、TCP、UDP
查看封装器的参数支持:ffmpeg -h muxer=flv
ffmpeg封装转换:
通过libavformat库进行Mux和Demux操作可以进行封装转换,其操作的通用参数如下:
通过libAVCodec库进行Encode和Decode操作可以进行编解码,通过命令ffmpeg --help full可以看到AVCodecContext参数列表信息,其操作的通用参数如下:
转码和封装的改变可通过AVCodec与AVFormat操作参数进行封装与编码,比如:
$ ffmpeg -i input.rmvb -vodec mpeg4 -b:v 200k -r 15 -an output.mp4
转封装格式从RMVB格式转换为MP4格式
视频编码从RV40转换为MPEG4格式
视频码率从377kbit/s转换为200kbit/s
视频帧率从23.98fps转换为15fps
转码后的文件不包括音频(-an参数)
ffprobe常用命令
ffprobe主要用来查看多媒体文件的信息,比如查看数据包信息
$ ffprobe -show_packets input.mp4
$ ffprobe -show_data -show_packets input.mp4
通过pos值,
$ xxd -s 0x942C6 -l 16 input.mp4'
000942c6: 0000 19e9 419a e749 e10f 2653 0208 7f80 ....A..I..&S....
查看视频的封装格式命令
$ ffprobe -show_format output.mp4