【问题标题】:know exactly the size of the converted video确切知道转换后视频的大小
【发布时间】:2013-05-28 01:42:40
【问题描述】:

我正在尝试使用 ffmpeg 更准确地了解转换视频的大小,我正在获取原始视频和输出视频的实际大小 并除以2的大小,当我得到另一个视频的大小时的逻辑将乘以该值以知道结果。

这样做的目的是因为我想用php和ajax制作一个进度条,所以按我的逻辑是。

<?
$total = $select_result;// total original file
$video = 'test.mp4';


//loop ajax
$getID3 = new getID3;
$file = $getID3->analyze($video);
$current = $file['filesize'];


$a = $total / $current;
$b = $a * 100;
print number_format($b,0).'%';
?>

ffmpeg 命令永远是这个

exec("ffmpeg -i $video -ar 22050 -ab 32 -f mp4 -s 320x240 teste1.mp4")

但是按我的逻辑不行,每个视频都是不同的值,可以这样计算吗?

【问题讨论】:

  • 是否可以调用filesize("teste1.mp4"); 来获取结果文件大小?
  • 默认情况下,根据您的 ffmpeg 配置,ffmpeg 将使用 libx264 和 MP4 容器的 CRF 速率控制方法。在编码结束之前,输出文件的大小是未知的。

标签: php algorithm math ffmpeg getid3


【解决方案1】:

如果生成的文件大小与原始文件大小不同,那么我建议如下:

  • 通过转换几个文件求平均比率,得到新旧文件大小的平均比率。

  • 在进行百分比计算之前,通过将当前大小乘以比率来估计新文件大小。

  • 如果百分比计算给出的值 >100%,则使用 100%。

出于心理原因,您可能希望使用比平均值更接近最大因子的比例因子。如果在 100% 之前完成,您的程序会感觉比达到 100% 然后停留一段时间要快。

【讨论】:

  • 但是我该怎么做呢?我想过使用编解码器来转换所有视频,但我认为它不起作用
猜你喜欢
  • 2021-12-20
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多