确切地知道转换视频的大小


know exactly the size of the converted video

我试图知道使用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")

但我的逻辑不起作用,每个视频是一个不同的值,它是可以做这个计算吗?

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

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

  • 估算新文件大小,在进行百分比计算之前将当前大小与比率相乘。

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

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