这个YUV420视频怎么会有尺寸不均匀的

如何解决这个YUV420视频怎么会有尺寸不均匀的

只是想巩固我对视频编解码器的理解,但似乎找不到任何相关信息。

https://www.mediafire.com/file/cbx8sciq5mie94m/arrow.webm/file 包含一个很小的 ​​vp9 webm。这是我通过 ffmpeg 通过简单的 gif -> webm 转换生成的。

源 gif 的分辨率为 13x11。不知何故,输出视频也具有 13x11 分辨率。我试图了解这是怎么可能的。

据我所知:

  1. YUV420 像素格式将使这成为不可能,因为 2 的色度子采样因子强制要求可除以二。

  2. VP9 本身的最小块大小为 16x16(?),因此至少必须编码那么多数据(?)

因此,我假设我们在这里编码了一个 ~14x12 或 ~16x16 的视频流,这些视频流以某种方式被缩放或裁剪为 13x11。

问题是我找不到任何关于它是如何工作的解释。

这是流的 ffprobe 输出

[STREAM]
index=0
codec_name=vp9
codec_long_name=Google VP9
profile=Profile 0
codec_type=video
codec_time_base=1/60
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
width=13
height=11
coded_width=13
coded_height=11
closed_captions=0
has_b_frames=0
sample_aspect_ratio=1:1
display_aspect_ratio=13:11
pix_fmt=yuv420p
level=-99
color_range=tv
color_space=unkNown
color_transfer=unkNown
color_primaries=unkNown
chroma_location=unspecified
field_order=unkNown
timecode=N/A
refs=1
id=N/A
r_frame_rate=60/1
avg_frame_rate=60/1
time_base=1/1000
start_pts=0
start_time=0.000000
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
disPOSITION:default=1
disPOSITION:dub=0
disPOSITION:original=0
disPOSITION:comment=0
disPOSITION:lyrics=0
disPOSITION:karaoke=0
disPOSITION:forced=0
disPOSITION:hearing_impaired=0
disPOSITION:visual_impaired=0
disPOSITION:clean_effects=0
disPOSITION:attached_pic=0
disPOSITION:timed_thumbnails=0
TAG:alpha_mode=1
TAG:ENCODER=Lavc58.91.100 libvpx-vp9
TAG:DURATION=00:00:00.600000000
[/STREAM]

最后一帧:

[FRAME]
media_type=video
stream_index=0
key_frame=0
pkt_pts=583
pkt_pts_time=0.583000
pkt_dts=583
pkt_dts_time=0.583000
best_effort_timestamp=583
best_effort_timestamp_time=0.583000
pkt_duration=16
pkt_duration_time=0.016000
pkt_pos=3639
pkt_size=15
width=13
height=11
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=P
coded_picture_number=0
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
color_range=tv
color_space=unkNown
color_primaries=unkNown
color_transfer=unkNown
chroma_location=unspecified
[/FRAME]

去掉 coded_widthcoded_height 值(应该代表任何缩放之前的“真实”宽度/高度(?))加上 sar 值 1,就我而言可以看出这是真正的 13x11 视频流,但这应该是不可能的,不是吗?

我的问题是,为什么这是一个有效的视频文件

如果我尝试例如zscaleYUV420 像素格式中分辨率不均匀,我遇到了预期的色度子采样错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?