欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 中使用 FFmpeg.NET

程序员文章站 2022-08-26 22:50:57
Ffmpeg的视频操作官网文档:https://ffmpeg.org/ffmpeg-filters.html#Video-Filters 视频压缩用到的参数主要为以下几个: 文件路径:-i 输入文件的路径 码率:-b:v 输出文件的码率 分辨率:-s 输出文件的分辨率; 帧率:-r 输出文件的帧率值 ......

ffmpeg的视频操作官网文档:https://ffmpeg.org/ffmpeg-filters.html#video-filters

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

  • 文件路径:-i 输入文件的路径
  • 码率:-b:v 输出文件的码率
  • 分辨率:-s 输出文件的分辨率;
  • 帧率:-r 输出文件的帧率值

码率

码率,即波特率。值越小,转换后的视频越小

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

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

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

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

分辨率

指的是视频的分辨率,常见的分辨率有4096*2304,1920*1080,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使用

一般的压缩命令可以用:ffmpeg.exe -i test.mp4 -b:v 500k -r 25 -s 1920x1080 output.mp4。分辨率可以根据源视频的尺寸等比进行设置~

1. 下载ffmpeg.exe

ffmpeg.exe文件下载链接: https://pan.baidu.com/s/1dmeihldsctq1sdsm_ejbmq 提取码: jrkm

2.xabe.ffmpeg

xabe.ffmpeg是一个ffmpeg第三方封装,它提供了ffmpeg的下载、管理以及ffmpeg.exe的详细封装操作,使ffmpeg的操作更加简洁。

通过nuget包引用后(只支持.net 4.6.1及以上),调用await ffmpeg.getlatestversion(ffmpegversion.full); 即可获取相应的版本。

 xabe.ffmpeg 官网指导: C# 中使用 FFmpeg.NEThttps://ffmpeg.xabe.net/index.html

 xabe.ffmpeg的使用,可参考博客:c# 中使用 ffmpeg.net

 

参考文章: