gpt4 book ai didi

ffmpeg - ffprobe 的数据包大小单位是多少(类似于 ffmpeg)?

转载 作者:行者123 更新时间:2023-12-04 14:29:20 25 4
gpt4 key购买 nike

我正在开发带有 ff- 系列(表示 ffmpeg、ffplay、ffprobe)的缩略图提取器。

我需要知道帧的位置,所以我使用了一个类似下面的命令,我在 stackoverflow 中找到了另一个帖子。

ffprobe -show_frames -select_streams v -print_format json=c=1 0001.wmv

实际上它工作得很好,并制作了一个包含大量数据包信息的文件。

输出文件如下。
   "frames": [
{ "media_type": "video", "key_frame": 1, "pkt_pts": 900000, "pkt_pts_time": "10.000000", "pkt_dts": 900000, "pkt_dts_time": "10.000000", "pkt_duration": 3003, "pkt_duration_time": "0.033367", "pkt_pos": "453", "pkt_size": "9744", "width": 720, "height": 480, "pix_fmt": "yuv420p", "sample_aspect_ratio": "8:9", "pict_type": "I", "coded_picture_number": 0, "display_picture_number": 0, "interlaced_frame": 0, "top_field_first": 0, "repeat_pict": 0 },...

有一个名为“pkt_size”的列,我假设它是数据包的大小。

它显示一些数字,但没有单位信息。

我想知道单位是“字节”还是“位”。

如果有人有这方面的一些信息,请告诉我。

谢谢。

最佳答案

单位是字节 .

最好的线索来自 tools/plotframes,这是 ffmpeg 提供的用于生成帧大小图的工具。检查此代码片段,它将以 Kbits (pkt_size * 8/1000) 为单位输出帧大小。

foreach my $frame (@{$frames}) {
my $type = $frame->{pict_type};
$frame->{count} = $frame_count++;
if (not $stats{$type}) {
$stats{$type}->{tmpfile} = File::Temp->new(SUFFIX => '.dat');
my $fn = $stats{$type}->{tmpfile}->filename;
open($stats{$type}->{fh}, ">", $fn) or die "Can't open $fn";
}

print { $stats{$type}->{fh} }
"$frame->{count} ", $frame->{pkt_size} * 8 / 1000, "\n";
}

关于ffmpeg - ffprobe 的数据包大小单位是多少(类似于 ffmpeg)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com