Rencode AVI文件,以满足给定的输出文件的大小之内。
-
10-07-2019 - |
题
我有一个AVI文件,我想重新编码,以适应尺寸650 MB的光盘中。我怎么编码,使得文件大小不超过给定大小?我可以使用哪些程序?
解决方案
AutoGK 可以非常有效地做到这一点。主要用于DVD **** ****咳嗽备份的目的,但它也将接受AVI源。它更具有协调GUI开源项目的集合,所以当安装程序安装几个项目也不用担心。
其他提示
我假设你想这样做编程方式:
:用于视窗:强>
您可以用DirectShow中通过建立一个filter图表来转码视频。
获取(如果您还没有)平台SDK的Windows。然后浏览这里查看一些DirectShow的实例构建滤波器的曲线图进行转码。
要建立你需要的基类。你可以在这里建立他们:
C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses
然后在这里检查出的例子:
C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow
您也可以手动创建过滤器图表获得挂起如何使用它们,看看这些东西是如何意义(如编码器的枚举,您将了解在示例):
C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\graphedt.exe
一旦你过分了这一点,并了解你可以如何工作的DirectShow使用一些数学来弄清楚如何影片转码,以适应在你想要的大小。要做到这一点,你可能想看看您的视频输入多少帧/秒,并有多大每帧。
不同的编码器以不同的方式工作:
让我们假设你正在转码avi文件到一个较小的或更小的质量avi文件。看你输入帧大小和FPS确定整个文件的大小,然后使用一些代数推测如何可以减少帧的大小或减少每秒帧数的#(或两者的组合)来实现所需的大小(其可以是您的输入变量)。
至于你可能想看看他们是如何工作的其他编码器。编码器有损MP4等进行估算,找出哪些视频已经从帧变为帧 - 以及信息存储重建帧的文件中。你将不得不了解他们如何工作 - 或检查,以了解如何使用您的具体编码器的详细信息。
:用于Linux(和也视窗):强>
可以使用的ffmpeg 这是一个全功能于一身的代码转换和其他的事情视频。你甚至可以找到的命令行应用程序的预构建的EXE,虽然主网页不托管它(只是源)。此应用程序使用开源的视频库做了很多的视频转码,以及许多其他的东西。如果你能找到一个很好的可靠的exe文件,如果你想要的东西,很容易使用你的应用程序,你应该大概检查了这一点。点击这里,查看他们的网页。
我希望这可以让你开始。
要使其适合特定的大小,则必须使用适当的比特率。
有关的固定比特率的视频,以获得目标比特率你会采取目标尺寸,以比特,并且源极的以秒为单位的长度。
target bit-rate = size / seconds
例如:
seconds = (90mins * 60) = 5400
size = ((650MB * 1024) * 8) = 5324800
target bit-rate = ~986 kilobytes per second
使用可变比特率,事情而更加复杂。如果有一种方法来准确地使输出文件的一组大小不太清楚。最简单的方法是使用上述方法来计算的最大比特率,
计算秒的AVI是多少。然后,采取由长度的文件大小和鸿沟。转换为千比特每秒,并使用它作为你的比特率中位数。 (使用谷歌做数学和转换容易。)
你的愿望可以衡量的视频和音频比特率。通常96 kbps的是AAC不够好,但你可能要更多或更少。实验