分类: 其他平台
2015-07-15 09:41:44
默认编译时所有的比特流滤镜都被支持,你可以在配置脚本中以--list-bsfs
获取有效的滤镜列表
可以利用--disable-bsfs
禁用所有的比特流滤镜。要指定个别的滤镜可用,则在此基础上--enable-bsf=BSF
,或者在默认(没有指定--disable-bsfs
)下禁用个别的滤镜--disable-bsf=BSF
,这里BSF
是个别滤镜名称。
在ff*工具集中,-bsfs
可以列出(编译允许了的)支持的比特流滤镜。
在ff*工具集中,-bsf
选项可以指定滤镜应用到每个流,具体滤镜由`滤镜名1=选项名1=选项值1/选项名2=选项值2...'给出,例如
ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1/opt2=str2][,filter2] OUTPUT
下面介绍了当前有效的一些比特流滤镜
转换MPEG-2/4 的AAC ADTS 到 MPEG-4 音频的专用配置比特流滤镜。
这个滤镜从MPEG-2/4 的ADTS头创建一个移除了ADTS头的MPEG-4音频专用配置流
这是十分必要的,例如把由raw ADTS转换的AAC音频内容复制到FLV/MOV/MP4文件时就需要进行这样的处理
移除每个包后面附加的0
对过滤包的开始添加extradata
附加参数指定了如何处理,有如下可能值:
‘a’
对每个包添加extradata,除了flags2 codec context field中local_header被设置的
‘k’
每个关键包添加extradata
‘e’
每个包添加extradata
如果没有指定则为k
例如下面ffmpeg强制在编码H.264中采用全局头(禁用单独数据包头),即将全局头添加作为extradata添加修正每个数据包
ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
转换H.264编码比特流,从长前导模式为开始码前导模式(定义在ITU-T H.264 的附录B)
它是一些流格式要求的,通常如MPEG-2传输流格式("mpegts")
例如采用ffmpeg重新混编一个H.264的MP4文件,把流转换成mpegts
格式,可以使用:
ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
修正为可编辑的比特流MOV格式,以用于Final Cut Pro解码。这个滤镜仅仅用于mpeg2video编码,对于需适用于Final Cut Pro 7以下版本的 ,同时使用-tag:v
选项
例如,重新混编 30MB/sec 的NTSC IMX 到MOV:
ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
转换MJPEG/AVI1 包为全 JPEG/JFIF包
MJPEG是一种视频编码,它每帧基本都是一个JPEG图像,可以直接无损提取,如:
ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg