FFmpeg基本命令
|Word count:988|Reading time:4min|Post View:
FFmpeg基本命令
ffprobe
1 2 3 4 5 6 7 8 9 10
| 1)查看帮助信息: ffprobe --help usage: ffprobe [OPTION][input_file] 2)查看多媒体数据包: ffprobe -show_packets -show_data testVideo.flv 3)查看封装格式:ffprobe -show_formates testVideo.flv 4)查看视频文件的帧信息: ffprobe -show_frames testVideo.flv 5)查看视频文件的流信息: ffprobe -show_streams testVideo.flv 6)格式化显示: ffprobe -of json -show_format testVideo.flv ffprobe -print_format csv -show_packets out.mp4 > outMp4.csv (windows下使用Elecard StreamEyes查看MP4视频文件)
|
ffplay
1 2 3 4 5 6 7 8 9
| 1)查看帮助信息:ffplay --help usage:ffplay [options] input_file 2)播放本地流 ffplay -window_title "Testwindow" testvideo.flv 3)播放网络流 ffplay http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8 4)使用示例 ffplay -x 1024 -y 768 -an testVideo.flv ffplay -ss 10 -t 5 -fs -loop 2 testVideo.flv ffplay -f rawvideo -video_size 640x360 outyuv.yuv (windows下使用YUVPlayer-Deluxe查看文件)
|
FFmpeg
信息查询命令:
1 2 3 4 5 6 7 8 9 10
| 1.FFmpeg封装格式支持:ffmpeg -muxers / ffmpeg -demuxers / ffmpeg -formats 2.FFmpeg编码格式支持:ffmpeg -encoders /ffmpeg -codecs 3.FFmpeg解码格式支持:ffmpeg -decoders /ffmpeg -codecs 4.FFmpeg滤镜支持: ffmpeg -filters 5.FFmpeg支持某种muxer、codec、filter详细参数: ffmpeg -h full -h type=name name:decoder/encoder/demuxer/muxer/filter/bsf/protocol ffmpeg -h muxer=flv ffmpeg -h encoder=h264 ffmpeg -h filter=delogo
|
封装与解封装流程
ffmpeg -i testVideo.flv output.mp4
分解复用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # demuxer muxer #input_file----------------->encoded data packets ------------> outputfile #处理命令 ffmpeg -i break.mp4 -vcodec copy -acodec copy out.avi -i:输入文件 -vcodec codec 设置视频编码器,也用作-codec:v 拷贝原视频的编码方式 -acodec codec 设置音频编码器,也用作-codec:a 拷贝原音频的编码方式
ffmpeg -i break.mp4 -vn -c:a copy out.aac -c:a 设置音频编码器,与-acodec一致 -vn 禁用视频
ffmpeg -i out.aac -i out.h264 -acodec copy -vcodec copy -f mp4 new.mp4
|
编码/解码命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ffmpeg -i testVideo.flv -an -c:v rawvideo -pix_fmt yuv420p out.yuv 提取yuv数据,通过-pix_fmt设置像素格式
ffmpeg -i break.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm 提取pcm数据 -ar 设置音频采样率 audio rate -ac 设置音频通道数目 -f 指定pcm文件数据格式
ffmpeg -s 1920x1080 -i out.yuv -vcodec h264 out.h264 使用h264编码压缩yuv数据
ffmpeg -ar 44100 -ac 2 -f s16le -i out.pcm -acodec libfdk_aac out.aac 使用fdk_aac编码压缩PCM数据
|
裁剪/合并命令
1 2 3 4 5 6 7 8
| ffmpeg -ss 00:00:00 -t 10 -i break.mp4 -vcodec copy -acodec copy 1.ts -ss position 跳转到输入文件的position位置,可以是秒数或者hh:mm:ss形式 -t duration 读取到文件的duration位置,可以是秒数或者hh:mm:ss形式
ffmpeg -f concat -i input.txt -vcodec copy -acodec copy new.ts 合并input.txt的视频文件列表 input.txt格式: file 'fileName'
|
图片视频互转命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ffmpeg -i break.mp4 -t 5 -r 2 -s 1024x768 %3d.jpeg 视频转图片 -r fps 设置图片截取速率,可以为浮点数 -s WxH 设置截取图片的大小
ffmpeg -i %3d.jpeg out.mp4 图片转视频
ffmpeg -i %3d.jpeg -r 5 out.gif 图片转gif动图
ffmpeg -i break.mp4 -t 5 -r 30 image.gif 视频转gif动图
|
录制命令
1 2 3 4 5 6 7 8 9
| ffmpeg -y -f x11grab -r 30 -s 1024x768 -i :0.0 -preset ultrafast output.mp4 录制屏幕命令,并编码封装成MP4文件 -preset 设置编码器预设参数 -ultrafast 最快的编码方式
ffmpeg -f alsa -i pulse -ar 44100 -ac 2 -f s16le out.pcm 获取音频数据命令
同时捕获音视频 将上述两个命令组合即可
|
直播命令
1 2 3 4 5 6
| ffmpeg -re -i input.mp4 -acodec copy -vcodec copy -f flv rtmp://xxx 推视频流至流媒体服务器 -re 读取输入的原始帧速率
ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8 -c copy output.m3u8 保存流媒体服务器上的流至本地
|
滤镜处理命令
处理流程:
1 2 3 4 5 6 7 8 9 10 11
| ffmpeg -i in.mp3 -filter_complex atempo=0.5 out.mp3 对声音进行变速不变调处理 -filter_complex filtergraph 设置复杂滤镜 atempo 设置音频速度因子(0.5-100, 默认1)
ffmpeg -i testVideo.flv -vf crop=in_w-200:in_h-100 -vcodec libx264 -c:a copy out.flv 裁剪视频 -vf filtergraph 创建和使用filtergraph指定的滤镜组 crop滤镜名称
添加、删除水印,如何改变视频亮度和对比度?
|