ffmpeg将源视频(sourceinfo)转换成目的视频(requestinfo),转码过程中的进度计算公式:
其中source_file_size为原视频文件大小 source_bitrate为原视频的码率(视频码率 + 音频码率);目的视频描述一致。
source_time = source_file_size / source_bitrate #原视频的时间长度
target_time = output_file_size / target_bitrate #目的视频的时间长度
progess = target_time / source_time
知识:
多媒体文件大小一般是指音频流大小与视频流大小的和,视频文件大小与音频文件大小计算方法如下:
视频大小 = 视频码率 x 时间(单位: 秒) / 8
音频大小 = 音频采样率(asamples) x 位深(bit depth) x 饮品通道数(channel) x 时间长度(单位:秒) / 8
为什么除以8呢,因为音视频的码率都是按位(bit)计算的,所以需要除以吧,转换成为字节
来自 bbs.chinaffmpeg.com 孙悟空
文件大小位 = 视频大小 + 音频大小;
还有一种计算方式
文件大小 = (视频码率 + 音频码率) x 时间长度(单位:秒) / 8