参考地址: //www.greatytc.com/p/ad672e30686a
参考地址: https://www.cnblogs.com/frost-yen/p/5848781.html
- ffmpeg 提取 h264数据
ffmpeg -i 2018.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 tmp.264
-i 2018.mp4: 是输入的MP4文件
-codec copy: 从mp4中拷贝
-bsf: h264_mp4toannexb: 从mp4拷贝到annexB封装
-f h264: 采用h264格式
tmp.264: 输出的文件
- 提取AAC
ffmpeg -i test.mp4 -acodec copy -vn output.aac
上面的命令,默认mp4的audio codec是aac,如果不是,可以都转为最常见的aac。
ffmpeg -i test.mp4 -acodec aac -vn output.aac
- ffmpeg 提取 yuv 数据
ffmpeg -i out.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
-an:不要音频
-c:v:对视频进行编码,使用 rawvideo 原始视频进行编码
-pix_fmt:像素格式,yuv420p
播放 yuv 视频 : ffplay -video_size 3360x2100 out.yuv
- 播放yuv文件
ffplay -s 2880x1800 -pix_fmt uyvy422 screen.yuv
- 提取 pcm 数据
ffmpeg -i 1.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
-ar:音频的采样率 44100
-ac2:双声道
-f:音频的数据存储格式 s16le :
s 代表 有符号的,有正有负,
16 代表每一个数值用16位表示
播放 pcm 数据
ffplay -ac 2 -ar 44100 -f s16le out.pcm提取 rgb 数据(提取17分15秒~17分30秒)
ffmpeg -ss 00:17:15 -t 00:00:15-i 12.mkv -pix_fmt rgb24 11.rgb
// 去掉视频中的音频
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
// -an: 去掉音频;-vcodec:视频选项,一般后面加copy表示拷贝
// 提取视频中的音频
ffmpeg -i input.mp4 -acodec copy -vn output.mp3
// -vn: 去掉视频;-acodec: 音频选项, 一般后面加copy表示拷贝
// 音视频合成
ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4
// -y 覆盖输出文件
//剪切视频
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
// -ss 开始时间; -t 持续时间
// 视频截图
ffmpeg –i test.mp4 –f image2 -t 0.001 -s 320x240 image-%3d.jpg
// -s 设置分辨率; -f 强迫采用格式fmt;
// 视频分解为图片
ffmpeg –i test.mp4 –r 1 –f image2 image-%3d.jpg
// -r 指定截屏频率
// 将图片合成视频
ffmpeg -f image2 -i image%d.jpg output.mp4
//视频拼接
ffmpeg -f concat -i filelist.txt -c copy output.mp4
// 将视频转为gif
ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
// -pix_fmt 指定编码
// 将视频前30帧转为gif
ffmpeg -i input.mp4 -vframes 30 -f gif output.gif
// 旋转视频
ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4
// 缩放视频
ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
// iw 是输入的宽度, iw/2就是一半;-1 为保持宽高比
//视频变速
ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4
//音频变速
ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3
//音视频同时变速,但是音视频为互倒关系
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4
// 视频添加水印
ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy output.mp4
// main_w-overlay_w-10 视频的宽度-水印的宽度-水印边距;