我有一个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不够好,但你可能要更多或更少。实验

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top