查询
#查看有没有nvenc编码能力
ffmpeg -codecs | grep nvenc
#查看ffmpeg支持硬件加速方式
ffmpeg -hwaccels
#检查 x264 nvenc 的可以使用的选项
ffmpeg -h encoder=h264_nvenc
使用库文件
pkg-config参考
<span style="font-size:12px;">TEMPLATE = app
CONFIG += console
CONFIG -= qt
SOURCES += main.c
INCLUDEPATH += . /usr/local/include
LIBS += -L./usr/local/lib/ -lavformat -lavdevice -lavcodec -lavutil -lavfilter \
-lpostproc -lswresample -lswscale
LIBS += -L./usr/lib/x86_64-linux-gnu/ -lva -lva-x11 -lva -lxcb -lxcb-shm \
-lxcb -lX11 -lasound -lSDL -lxvidcore -lx264 -lpthread -ltheoraenc \
-ltheoradec -logg -lopencore-amrwb -lopencore-amrnb -lmp3lame -lfaac \
-lm -lbz2 -lz -pthread -lrt</span>
音频互转
#批量操作(输出路径写绝对路径,*匹配的内容填充到{})
find . -name "*.wav" -exec ffmpeg -i {} -f s16le output/{} \;
#查看音频信息(可以看到时长)
ffmpeg -i input.wav
#pcm转换成wav
ffmpeg -f 数据格式 -ar 采样率 -ac 通道数 -i input.pcm output.wav
ffmpeg -f s16le -ar 16000 -ac 1 -i input.pcm output.wav (s16le:有符号、整形、小端)
# -f wav转成pcm
ffmpeg -i input.wav -f s16le ouput.pcm
#-f wav内格式转换(如果不加-f wav会输出成aac)
ffmpeg -i input.wav -f s16le -f wav output.wav
# -ac 转换声道数
#多声道转单声道(wav不压缩,aac压缩)
ffmpeg -i input.wav -ac 1 output.wav/aac
#多声道转单声道(转换声道数的同时转为pcm)
ffmpeg -i intput,wav -ac 1 -f s16le output.pcm
# -ar 采样率转换
#音频裁剪(从10秒开始截取1分钟)
ffmpeg -ss 00:00:10 -t 00:01:00 -i input.mp3 -c copy output.mp3
#音频拼接
ffmpeg -f concat -i list.txt -c copy "all.mp3"
#list.txt内容
图像互转
#yuv转成jpeg
ffmpeg -y -s WxH -i source.yuv result.jpeg
#jpeg bmp png 转成yuv
ffmpeg -i source.jpg -s WxH -pix_fmt yuv420p result.yuv (改后缀即可)
视频互转
#非标准MP4视频转成标准MP4
ffmpeg -i 结束语.mp4 -c:v libxvid 结束语了.mp4
ffmpeg -i template_body_order_result.mp4 -c:v libxvid template_body_order_result_1.mp4
视频与图像
#视频截帧成图片
'./data/ffmpeg2 -v 0 -i %s -r 25 -q 0 %s/%s.jpg'%(video_path, tmp_folder,'%08d')
#crop的参数格式为w:h:x:y,
#w、h为输出视频的宽和高(必填)
#x、y标记输入视频中的某点,将该点作为基准点,向右下进行裁剪得到输出视频, 默认居中剪切(选填)
# -start_number 标记图像开始序号 (选填)
ffmpeg -v 0 -i /Users/username/Downloads/video_data/test.mp4 -r 25 -q 0 /Users/username/Downloads/image_data/test_origin_15/%08d.jpg
ffmpeg -v 0 -i intput.mp4 -r 25 -q 0 -vf crop=608:1080 -s 540x960 %08d.jpg
ffmpeg -v 0 -i ../../video_data/test.mov -start_number 125 -r 25 -q 0 %5d.jpg (从125开始)
# 图像拼接成视频
ffmpeg -r 25 -f image2 -i data/%8d.jpg ./data/result.mp4 (默认从0开始)
ffmpeg -r 25 -f image2 -start_number 125 -i 'data/%8d.jpg' ./data/result.mp4 (从125开始)
网友评论