分享

FFmpeg命令

 白牙巴克 2023-05-08 发布于陕西

一、安装

1.下载

  官网上新版:基本版完整版

2.安装

  首先,我们打开FFmpeg的官网,然后点击“Download”按钮,进入下载页面,下载对应的版本即可。然后在电脑上安装。Windows还需要将安装目录添加到环境变量。

  查看FFmpeg的帮助界面,让我们在控制台输入以下命令:

  ffmpeg -h

  然后ffmpeg就会输出它的帮助信息。由于信息是英文的,因此需要一点耐心去阅读它。    

  这是关于编码器和解码器的信息,然后我们可以输入以下代码,分别查看编码器和解码器的可选项:

ffmpeg -decoders
ffmpeg -encoders
ffmpeg -codecs

  我们会发现输出了一堆信息,让我们眼花缭乱。是的,FFmpeg就是这么强大,支持很多的编解码器.

二、命令

1.ts转mp4

ffmpeg -i video.ts -c copy video.mp4

  copy为原视频格式

  有一点要注意,ffmpeg使用时候文件名称不能包含空格,否则会跳过,如果有空格需要加上引号,例如 "v i d eo.ts"

ffmpeg -i "vid eo.ts" -c copy "v ideo.mp4"

  转为H264格式,速度略慢,取决于电脑速度

ffmpeg -i video.mp4 -vcodec h264 video.mp4

2.ts批量转为mp4

  在电脑上,新建一个.bat文本,在ts视频目录执行即可,下面del %%a,为转为mp4之后,删除原文件,不需要可删除那段

代码如下:

for %%a in (*.ts) do (

ffmpeg -i "%%a" -c copy "%%~na.mp4"

del "%%a"

)

  转换多种格式

set Ext=*.ts,*.avi,*.wmv,*.flv,*.mkv,*.rmvb,*.rm,*.mov

for %%a in (%Ext%) do (

ffmpeg -i "%%a" -c copy "%%~na.mp4"

del "%%a"

)

3.视频压缩

  hevc压缩

ffmpeg -i demo.mp4 -c:v libx265 -x265-params crf=18 output/demo_1.mp4

  然后,经过一段时间的等待,我们就可以看到结果了!

  进行更高级的压缩

  在这里,我们讲解一下上面的参数设置的含义。crf是Constant Rate Factor的缩写,它的值越小,画质越高,占用的空间越大。它的可选项为0~51,默认为28.当crf在20以下的时候,就能实现视觉上的无损。

  此外,FFmpeg还为我们提供了一些预设选项,我们可以通过preset选项,快速设置x265编码的时候使用到的参数。

  preset的可选项按照编码速度从快到慢,排列如下:

ultrafast
superfast
veryfast
faster
fast
medium
slow
slower
veryslow
placebo

  编码速度越慢,则压缩效果及画质越好。preset选项的默认参数为medium。

  输出最高压缩效果的视觉无损视频

ffmpeg -i 输入文件名 -c:v libx265 -x265-params crf=18:preset=placebo output/输出文件名.mp4

对于上面的视频,我们可以用下面这个压缩命令:

ffmpeg -i demo.mp4 -c:v libx265 -x265-params crf=18:preset=placebo output/demo_2.mp4

  虽然这次的体积只减少了13.1%,但是肉眼看视频的时候,很明显感觉视频画质和原视频没啥区别。 这样算下来,1GB的视频,使用最高画质的无损压缩,可以节省下131MB的空间呢!还是很可观的!

  关键参数

  ;视频压缩用到的参数主要为以下几个:

文件路径:-i 输入文件的路径
码率:-b:v 输出文件的码率
分辨率:-s 输出文件的分辨率;
帧率:-r 输出文件的帧率值
码率
码率,即波特率。值越小,转换后的视频越小

码率  就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。

  码率与体积成正比:码率越大,体积越大;码率越小,体积越小。由于文件体积与取样率是成正比的,所以几乎所有的编码格式都想用最低的码率达到最少的失真,“码率”就是失真度,码率越高越清晰,反之则画面粗糙而且马赛克多。

  建议码率不要小于500。一般500k左右,人眼看不到明显的闪烁。

   案例ffmpeg.exe -i test.MP4 -b 600k output.mp4

分辨率  指的是视频的分辨率,常见的分辨率有40962304,19201080,720*576等。具体的值,可以根据源视频的分辨率做个等比的缩小。

   案例ffmpeg.exe -i test.MP4 -s 1920*1080 output.mp4

帧率  即视频更新率,就是每秒编码进视频文件的帧数目,是用于测量显示帧数的量度。测量单位为“每秒显示帧数”(Frame Per Second,FPS,帧率)或“赫兹”,单位用FPS用来描述视频每秒播放多少帧,而单位用赫兹用来描述显示器的画面每秒更新多少次。

  常见的帖率有25、30,高清电视有50、60帧。一般帧率越高,视频画面越流畅。但是人类的眼睛需要每秒至少15帧才能将图像连贯在一起~

   案例ffmpeg.exe -i test.MP4 -r 25 output.mp4

将视频压缩指定大小

ffmpeg  -i  Desktop/input.mp4  -fs 10MB  Desktop/output.mp4

  -fs 10 : 表示文件大小最大值为10MB

设置视频的帧率为20fps

ffmpeg  -i  Desktop/input.mp4  -r 20  Desktop/output.mp4

  -r 20:表示帧率设置为 20fps

设置视频的码率

ffmpeg  -i  Desktop/input.mp4  -b:v 1M  Desktop/output.mp4

  -b:v :指定视频的码率   -b:a : 指定音频的码率   1M:码率的值 1M 表示 1Mb/s

设置视频的分辨率

ffmpeg  -i  Desktop/input.mp4  -s 1920x1080  Desktop/output.mp4

  -s 1920x1080表示分辨率为1920x1080

可以结合上面的命令一起来使用

ffmpeg  -i  Desktop/input.mp4  -s 1920x1080  -b:v 1M  -r 20  Desktop/output.mp4

4.视频裁剪

  ffmpeg提供简单的命令参数:

ffmpeg -ss START -t DURATION -i INPUT -vcodec copy -acodec copy OUTPUT

ffmpeg -ss 00:00:01 -t 00:14:10 -i 11.15output.mp4 -vcodec copy -acodec copy 11.15output2.mp4

  对上面的命令稍做个解释。

-ss 开始时间,如: 00:00:20,表示从20秒开始;

-t 时长,如: 00:00:10,表示截取10秒长的视频;

-i 输入,后面是空格,紧跟着就是输入视频文件;

-vcodec copy 和 -acodec copy表示所要使用的视频和音频的编码格式,这里指定为copy表示原样拷贝;

INPUT,输入视频文件;

OUTPUT,输出视频文件;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多