ffmepg学习——常用流程解析(转)
转码一般过程
_______ ______________ | | | | | input | demuxer | encoded data | decoder | file | ---------> | packets | -----+ |_______| |______________| | v _________ | | | decoded | | frames | |_________| ________ ______________ | | | | | | | output | <-------- | encoded data | <----+ | file | muxer | packets | encoder |________| |______________|
简单图像过滤
_________ ______________ | | | | | decoded | | encoded data | | frames |\ _ | packets | |_________| \ /||______________| \ __________ / simple _\|| | / encoder filtergraph | filtered |/ | frames | |__________| _______ _____________ _______ ________ | | | | | | | | | input | ---> | deinterlace | ---> | scale | ---> | output | |_______| |_____________| |_______| |________|
基本的音频转码参数
-ar <value> 设置output文件的采样率,一般设置22050, 44100, 48000 Hz. -ac <value> 设置音频通道数量. -ab <value> audio bitrate value,音频文件的码率. e.g. -ab 128k. 数值越高,音质越好。但前提是源文件质量要高。(国内有些音乐软件资源有SQ,HQ的标识,其实质量并不高) -an disable audio -acodec 选择音频编码器 e.g. libmp3lame ffmpeg -i input.wav output.mp3 ffmpeg -i input.mp3 -b 128k output.ogg #可选参数"-acodec vorbis",以防无法正常使用
基本的视频转码参数
-b <value> 码率 ffmpeg -i input.avi -b 200k output.avi -r <value> 帧速率 ffmpeg -i input.mp4 -r 24 output.mp4 -s <resolution> 分辨率 ffmpeg -i input.avi -s 1920x1080 output.avi -aspect <ratio> 长宽比 ffmpeg -i input.avi -aspect 16:9 output.avi -vn disable video
输出视频的质量和输入视频一样
ffmpeg -i input.avi -sameq output.mpg
预设值格式的文件格式
ffmpeg -i input.avi -target dvd output.mpg
预设格式有:vcd, svcd, dvd, dv, dv50, pal-vcd, ntsc-svcd...etc
持续输出一段时间(x秒)至output.fmt2
ffmpeg -i input.fmt1 -t x output.fmt2
webm格式转为mp4
ffmpeg -fflags +genpts -i 1.webm -r 24 1.mp4 //转换格式的同时更新了时间戳/帧速率