参考博文如下,感谢博主 [文明的博客] 所做工作
FFmpeg常用基本命令行
视频质量把控关键参数–推荐参考链接
推荐 知乎大佬链接(更为详细理解因果) – FFMPEG常用命令
下文就是鹅亲测记录的一些实用命令了,欢迎继续查阅
不负如来不负卿
全局信息
首先,可以查看一下 帮助信息,努力看懂一点儿…
ffmpeg -h
比如:
执行:
ffmpeg -formats
它会返回当前支持的各种音视频类型,部分输出说明如下:
...
比如我们看的懂的MP3、MP4
E mp2 MP2 (MPEG audio layer 2)
DE mp3 MP3 (MPEG audio layer 3)
E mp4 MP4 (MPEG-4 Part 14)
...
比如音频 PCM 格式:
DE u16be PCM unsigned 16-bit big-endian
DE u16le PCM unsigned 16-bit little-endian
DE u24be PCM unsigned 24-bit big-endian
DE u24le PCM unsigned 24-bit little-endian
DE u32be PCM unsigned 32-bit big-endian
DE u32le PCM unsigned 32-bit little-endian
DE u8 PCM unsigned 8-bit
...
ts格式 视频转换和处理
ts格式 视频 转 mp4
这个命令可以转成功,但是音频流没有同步转过去;
ffmpeg -i tv.ts -acodec copy -vcodec copy -f mp4 output.mp4
分离得到音频流
ffmpeg -i tv.ts -acodec copy -vn 1.ts
或者
这个方法 转换 得到的 音频 很大,并且 音频时长信息发生错误,因此 我认为 ts格式视频 在处理时直接 取结果为mp4是不可取的;
ffmpeg -i tv.ts -vcodec copy -f mp4 video.mp3
分离得到视频流
ffmpeg -i tv.ts -vcodec copy -an 2.ts
mp4 视频处理
分离得到音频流
ffmpeg -i test.mp4 -acodec copy -vn video.mp4
或者
ffmpeg -i test.mp4 -acodec copy -vn -f mp4 video.mp3
- acodec: 指定音频编码器,copy 指明只拷贝,不做编解码。
- vn: v 代表视频,n 代表 no 也就是无视频的意思
分离得到视频流
ffmpeg -i test.mp4 -vcodec copy -an audio.mp4
- vcodec: 指定视频编码器,copy 指明只拷贝,不做编解码
- an: a 代表视频,n 代表 no 也就是无音频的意思
音视频合并
这里我认为有一个需要注意的点:
我这里音频、视频都是 mp4 ; 我发现使用指定解码器为-vcodec copy -acodec copy
可以到原画质的视频;
而错误指定为-acodec copy -acodec copy
虽然也可以合成视频,但是视频中 马赛克严重
综上说明,使用 音频 + 视频 进行 合成,那么就需要 一个acodec + vcodec
来分别解码 音频 和 视频
推荐使用:指定 音频 + 视频 解码器
ffmpeg -i audio.mp4 -i video.mp4 -vcodec copy -acodec copy out.mp4
ffmpeg -i audio.mp4 -i video.mp4 -vcodec copy -vcodec copy out3.mp4
mp4 视频 分帧得到图片
默认分帧
ffmpeg -i test.mp4 %d.jpg
或者 指定 分帧 -- 每秒 28 帧
ffmpeg -i test.mp4 -r 28 -f image2 %d.jpg
据我 凡胎肉眼,观测,这个命令 分帧得到的 图片 感觉不那么清晰啊,马赛克似乎很明显,是不是需要别的一些参数辅助呢?
最基础版图片转视频
%d 它会 从 1、2、3...读取图片
%5d 它会 从 00001、00002、00003...读取图片
ffmpeg -f image2 -i %d.jpg images.mp4
或者 指定 每秒 25帧
ffmpeg -r 25 -f image2 -i %5d.jpg video25.mp4
** 指定分辨率 合成 视频**
ffmpeg -r 25 -f image2 -i %5d.jpg -s 2880x2304 video25.mp4
初级 图片 + 音频 合成 视频
ffmpeg -threads 4 -y -r 25 -i %5d.jpg -i video.mp3 -s 2880x2304 -absf aac_adtstoasc output.mp4
软件运行时,命令解析:
视频音量提升
ffmpeg -i output_1080.mp4 -filter:a "volume = 2dB" -qscale 0 output_2db.mp4
这个地方 如果 2dB 修改 为 30db ,会发现声音明显变得嘈杂;
-qscale 0 是设定输出视频的质量,没有这个参数,输出视频会变小(质量变差);