目录
目录
目录
ffmpeg命令结构:
ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
ffmpeg格式明细
ffmpeg -codecs 查看支持的编解码器(也就是-vcodec后面可以接的参数)
ffmpeg –decoders 可用的解码器
ffmpeg –encoders 可用的编码器
ffmpeg -formats 查看支持的封装格式(也就是-f后面可以接的参数):
ffmpeg -filters 查看支持的滤镜(也就是-vf后面可以接的参数):
•可用的bit流 :ffmpeg –bsfs
•可用的视频格式:ffmpeg –formats
•可用的声道布局:ffmpeg –layouts
•可用的license:ffmpeg –L
•可用的像素格式:ffmpeg –pix_fmts
•可用的协议:ffmpeg -protocols
编解码格式与编解码器
查看所有支持的编解码格式和对应的编解码器
ffmpeg.exe -codecs
在里面可以看到h264对应的编解码器的名字,以及mpeg4对应的编解码器的名字
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid ) (encoders: libx264 libx264rgb h264_amf h264_nvenc h264_qsv nvenc nvenc_h264 )
可以看出h264编码器的名字为libx264
查看编码器参数
ffmpeg.exe -h encoder=libx264
指定编码器参数
ffmpeg.exe -f gdigrab -i desktop -vcodec libx264 -qmax 40 -x264-params "profile=baseline:level=3.0" -f mp4 j:/out.mp4
ffmpeg.exe -f gdigrab -i desktop -vcodec libx264 -x264-params "profile=baseline:crf=28" -preset:v fast -b:v 400k -r 10 -f mp4 j:/out.mp4
压缩比profile
从压缩比例来说,baseline< main < high ,对于带宽比较局限的在线视频,可能会选择high,但有些时候,做个小视频,希望所有的设备基本都能解码(有些低端设备或早期的设备只能解码baseline),那就牺牲文件大小吧,用baseline。自己取舍吧!
拉流
拉流保存命令
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
ffmpeg.exe -i srt://10.10.15.243:1234?mode=caller -c copy j:/out.mp4
ffplay拉流播放
ffplay.exe srt://10.10.15.243:1234
格式转换
从MP4文件中提取H264裸流
书上方法:
不带音频
ffmpeg.exe -i 1.mp4 -vcodec copy -an 1.h264
增加起止时间,包括音频
ffmpeg.exe -i nice.mkv -vcodec copy -acodec copy -ss 01:09:58 -to 01:13:09 -y out.h264
自己亲测可用的方法:
ffmpeg.exe -i timer-120fps.mp4 -c h264 -bsf: h264_mp4toannexb -f h264 out.h264
ffmpeg.exe 命令
-i timer-120fps.mp4 输入文件
-c h264 编码方式
-bsf: h264_mp4toannexb 比特流格式
-f h264 输出格式
out.h264 输出文件
同事给的方法:
ffmpeg -i file.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output.h264
h265转yuv
ffmpeg -i h265.h265 -vcodec rawvideo -an -y -frames 4 output.yuv
nv12转bmp
ffmpeg -f rawvideo -pix_fmt nv12 -video_size 1920x1088 -i ./1-601.nv12 out.bmp
文件拆分
ffmpeg -f rawvideo -s 1920x1080 -pixel_format yuv422p -i h265.h265 -c copy -f segment -segment_time 0.01 frames%d.yuv
录制Windows桌面
按q退出
ffmpeg -f gdigrab -i desktop -y -f mp4 d:/out.mp4
//指定编码器libx264
ffmpeg.exe -f gdigrab -i desktop -vcodec libx264 -f mp4 j:/out.mp4