ffmpeg 常用命令
常用命令
1.mp4转yuv
ffmpeg -i test.mp4 test.yuv
2.播放yuv
ffplay -f rawvideo -video_size 1280x720 -i test.yuv
-f format
-video_size 分辨率
3.调整分辨率
ffmpeg -i input.mp4 -strict -2 -s 640x480 output.mp4
-strict -2 : 遗留下来的实验参数,表示使用aac编码,默认安装的ffmpeg有aac编码,使用它就无须安装别的音频编码库
-s: scale 分辨率
4.等比率调整分辨率
ffmpeg -i input.mp4 -strict -2 -vf scale=640:480 output.mp4
-vf scale: 调整的分辨率, 640或者480其中一个写成-1, 将按照input.mp4的宽高比进行缩放
5.pcm转mp3
ffmpeg -y -f s16be -ac 1 -ar 16000 -acodec pcm_s16le -i 16k.pcm new_mp3.mp3
-f: format 格式 s16be pcm16位大端格式
-ac: audio channel 音频通道数
-ar: audio rate 音频采样率
-acodec: 使用的audio编码器 pcm_s16le pcm16位小端
6.mp3转pcm
ffmpeg -y -i test.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 16000 16k.pcm
-acodec pcm_s16le: 输出音频编码器为 pcm_s16le
-f s16le: 输出格式为pcm 16位小端
-ac 2:输出通道数为2
-ar: 采样率为16000hz
7.播放pcm
ffplay -ar 16000 -ac 1 -f s16le -i Desktop/out.pcm
-ar audio rate
-ac audio channel number
-f format ;s16le, pcm的默认16bit格式
8.音频采样率转换
ffmpeg -i input.mp3 -ar 8000 -ac 1 output.mp3
-ar: audio rate 音频采样率
-ac: audio channel 音频通道数
9.yuv转h264
ffmpeg -s 176x144 -i input.yuv -b:v 7776k -r 25 -vcodec libx264 output.h264
-s 176x144: frame size (WxH) 帧大小为176*144
-b:v 7776k: bit rate : video 7776k
-r 25: frame rate 为25
-vcodec libx264: 使用的video编码器为libx264
10.查看h264每一帧的属性
ffprobe -i video.h264 -show_frames > frame.attr
11.查看每帧的dst和pts
ffmpeg -i input.264 -dump -map 0:v -f null -
-map 0:v : 从输入流中选择video 流, 0代表的是第一个输入流
12.查看码流总帧数
ffprobe 1_soccor.h264 -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1
13.给视频添加时间戳水印
./ffmpeg -i test.mp4 -vf drawtext="fontfile=AdobeFanHeitiStd-Bold.otf:fontcolor=white:fontsize=60:x=1230:y=150:text='%{pts\:hms}'" -c:v libx264 -an -f mp4 output.mp4 -y
其中fontfile=AdobeFanHeitiStd-Bold.otf,指定的是字体文件,绘写字体的时候需要字体文件,如果没有可以从C:\Windows\Fonts
随便拿一个即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界