@TOC```cpp
通过ffmpeg --help > help.txt
一 基本参数
-i 输入, 输出:写文件名或流地址
ffmpeg -i test.mp4 -vframes 300 -b:v 2M -r 30 -s 640x480 -aspect 16:9 –vcodec libx265 test.h265
视频部分参数:
-vcodec libx264/libx265/h264_nvenc/h264_qsv //指定视频编码器
-vcodec copy //视频直接拷贝,不重新编码
-vframes 300 //设置输出的帧数,编300帧
-b:v 4M //码率
-g 30 //gop 30
-vn //disable video
-c copy //不改变编码
-t 3 //转换3秒的数据
-ss 00:01:00.000 //开始时间的offset
-pix_fmt yuv420p //指定yuv格式, ffmpeg -pix_fmts查yuv字符串名称
-re //推流时,按照帧率发送
-vf filter_graph //滤波器
-vf scale=iw/2:ih/2 //宽高减半
-f xxx //指定音视频格式
音频部分参数:
-aframes 300 //设置输出的帧数,
-ar 48000 //设置音频采样频率
-ac 2 //设置音频通道数
-f s16le //格式, s表示short,le小端, be大端。s32le, fltp。
-an //disable audio
-acodec libaac/libmp3lame,
-af filter_graph //set audio filters
-y //覆盖已有文件
二 直播
win端列设备:ffmpeg -list_devices true -f dshow -i dummy
ffmpeg -list_options true -f dshow -i video=“Integrated Camera”
笔记本是UVC摄像头:yuyv422、mjpg。
ffmpeg -f dshow -i video=“Integrated Camera” -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1/live/flower
三 ffplay
音视频文件是否正常, pcm文件,
四 ffprobe
//-print_format xml
//-show_streams(总体),show_packets,show_frames,
ffprobe -print_format json -show_streams cctv1.flv > show_streams.json
ffprobe -print_format xml -show_frames cctv1.flv > show_frames.xml