java执行ffmpeg命令
String command = “ffmpeg命令”
Process process = Runtime.getRuntime().exec(command);
ffmpeg 安装的文件和版本信息
ffmepg -version 显示版本
ffmepg -h 展示帮助
ffplay xxx.mp4 播放视频
cls 清空命令行
ffplay xxx.mp3 播放音频
方向键 前进后退播放
点击窗口的任意一个地方会跳转播放位置
F 全屏
P/空格 暂停
W 切换显示模式
ffprobe xxx.mp4 可以获取视频的头文件(媒体参数,…)
ffmepg -i xxx.mov xxx.mp4 将xxx.mov转换为mp4格式并命名为xxx(-i用来指定输入文件)
ffmpeg -codecs 展示上百种编解码器
网站视频潮流:
MP4 封装: H264 视频编码 + AAC 音频编码
WebM 封装: VP8 视频编码 + Vorbis 音频编码
OGG 封装: Theora 视频编码 + Vorbis 音频编码
ffmpeg -i xxx.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 out.mp3 (-acodec 设置编解码器,-ar 设置音频采样率一般使用48kHz和44.1kHz,-ab 指定音频的比特率默认128k,-ac 设置声道数的指令)
ffprobe xxx.mp3 查看xxx.mp3的属性
ffmpeg -h 可以看到一些常用的指令
-aframes number 设置转换音频的帧数
-aq quality 设置转换音频的质量
-ar rate
-ac channels
-an 禁用音频
-acodec codec
-vol volume 设置音量(默认是256,即百分之百音量)
-af filter_graph 设置音频过滤器
这些指令可以输入也可以不输入
ffmpeg -i xxx.webm -s 1920x1080 -pix_fmt yuv420p -vcodec libx264 -preset medium -profile:v high -level:v 4.1 -crf 23 -acodec acc -ar 44100 -ac 2 -b:a 128k xxx.mp4 (-s用来缩放视频尺寸的,-pix_fmt 即pixel format设置视频颜色空间YUV,NV,RGB…都支持,yuv420p网络视频基本采用这个颜色空间,-vcodec libx264 设置视频流的编码器,ffmpeg还支持硬件编码GPU加速,多线程,-preset medium编码器预设,调整预设可以改变编码算法的精度,精度越高编码速度越慢,CPU暂用率越多)
-preset medium(还有ultrafast,superfast,veryfast,faster录制视频的时候选择它,编码器不会暂用太多CPU时间,fast,medium,slow,slower,veryslow,placebo)
ffmpeg -pix_fmts 查询具体的参数
-profile:v high 主要是用来指定编码器的配置,这个配置主要是和压缩比有关,实时通讯领域一般采用baseline,流媒体就采用main,制作超清视频采用high,这也是大多数视频网站支持的最高配置
-level:v 4.1 对编码器配置的具体规范和限制,压缩比和画质之间做出权衡,一般情况下1080p的视频就用4.1
-crf 23 设置码率控制模式(Constant Rate Factor 恒定速率因子模式),23是指视频的质量(0-51,数值越小质量越高,默认为23,0就是无损的画质,但是一般都在18-28之间做选择)
-qp(Constant Q