是否只有少数几种标准视频帧速率?


11

在现代数字视频中,视频文件可以标记为任意帧率吗?还是仅广泛支持少数几个特定的​​帧速率?我所说的“现代”是指Quicktime,VLC,Roku,游戏机等软件播放器。我很好奇视频标准本身所说的允许帧速率以及实际可行的功能。

我了解24 fps,25 fps,30 fps,50 fps和60 fps是广泛支持的标准。HandBrake还提供5、10和15;这些是标准选项吗?我可以使用我想要的任何FPS号码吗?以及非整数利率(例如23.976和29.97)呢?它们实际上在软件处理方面与24和30有所不同吗?我还看到了H.264流中对“可变帧速率”的引用;这确实有效吗?如果是这样,有什么用?

我的具体问题是,最好的方法是对一些8mm胶片扫描进行编码。来源是8毫米胶片标准的16 fps。现在,我将每隔一帧加倍以使其达到24 fps,这可以正常工作,但是我想知道为什么我不能仅将视频标记为16 fps。FWIW我用15 fps的Handbrake制作了H.264 mp4文件,发现它们只能在VLC中正确播放。Mac Quicktime播放它们的速度太快,可能是24 fps。

Answers:


11

有几种“标准”帧速率,但是越来越多,以至于支持任意帧速率要比专门支持许多特定帧速率容易。对于像VLC这样的软件播放器来说尤其如此。

对VARIABLE fps的支持越来越多。(VFR,可变帧频)。在同一视频中,帧之间的间隔不是恒定的。许多视频容器文件格式(例如Matroska(.mkv)或MPEG-4(.mp4与Apple的关系密切.mov))甚至都不存储FPS编号,而是存储时基(例如1/30秒),然后每帧时间戳是该时基的倍数。恰好发生在CFR(恒定帧速率)视频中,每帧之间的间隔是时基的一个或少量整数单位。

丢弃了几乎重复的帧的安全摄像机镜头将是VFR的明显用例。更重要的是,如果使用不充分利用时间冗余(具有帧间(p和b))的简单视频编解码器对其进行压缩。(ffmpeg -vf mpdecimate试着丢掉近乎重复的帧。-vsync 2在输出到mp4时使用,因为出于某种原因,它不是该多路复用器的默认值,但对于mkv是这样。)

另一个案例是现代智能手机。例如,我兄弟的Moto G(第二代)录制了VFR视频。当传感器需要更多光线时,它会降低帧速率。在手机的软件创建的mp4上运行mediainfo的一些输出记录在室内:

Bit rate                                 : 9 999 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Rotation                                 : 90°
Frame rate mode                          : Variable
Frame rate                               : 16.587 fps
Minimum frame rate                       : 14.985 fps
Maximum frame rate                       : 30.030 fps

单个VFR视频流的播放并不困难。该软件只是准备好显示下一帧,休眠直到应显示它,然后唤醒并显示它。

考虑到人类只有在监视器显示视频帧时才能看到视频帧,事情变得更加复杂。VFR监视器存在,但仍然很少。(Google表示g-sync freesync)。

在将显示的图像扫描到显示器上时更改显示的图像会导致视频难看(通常在关闭vsync的情况下玩游戏时可见)。这限制了播放器以50或60Hz更改显示的图像。(CRT支持在一定范围内的任意vrefresh速率,但是在所有正确的时序下准备模式都是很复杂的,因此大多数人只使用了几个固定的刷新率。现在人们拥有的LCD始终仅支持固定的刷新率。直到无论如何,freesync监控器更加普及。我真的很期待。

因此,如果视频帧速率不是监视器刷新率的倍数或因子,则某些帧将显示3次监视器刷新,而有些帧显示2次,例如,即使视频的恒定帧率为25FPS (在60Hz显示器上)。

当您要使用多个剪辑并在它们之间渐隐,画中画或各种其他效果时,事情变得更加复杂。如果您可以假设所有剪辑同时具有新的帧,那么编写视频编辑软件就容易得多。(它们强制剪辑对齐以捕捉到整个帧)。

这就是为什么NLE(例如kdenlive或pitivi,选择随机的Free软件示例)更有可能迫使您使用固定的FPS,并从剪辑中删除/复制帧以使其与该帧速率匹配。您选择的CFR可以是任意的,但对于整个“项目”,它通常必须恒定。

(是否有任何NLE可以完全与VFR剪辑配合使用,并在这种情况下产生VFR输出?)

总而言之,我想一旦有了变量同步监视器和操作系统,唯一阻碍我们前进的就是视频编辑。广播,因为显然CFR对此也很重要?

如果您想知道,令人讨厌的非整数帧速率的29.970(实际上是30000/1001)和23.976(实际上是24000/1001,来自电视转播)是彩色NTSC的缺点。 搜索1.001。如果他们只愿意冒一些B&W设备无法处理音频子载波的0.1%额外频率的风险,那么世界将免于这种胡说八道。(我想我在某处看到了另一篇文章,听起来似乎很多集都可以,但是他们不确定完美的兼容性。维基百科表示听起来没有集可以处理高0.1%的音频子载波。IDK事实。)

不过,令人讨厌的帧速率是广播的次要缺点之一。真正的隔行扫描一直是现代(所有像素一次点亮)屏幕上视频质量的祸根,并且这种情况不会改变。我仍然不明白为什么高清电视会隔行扫描。为什么曾经定义1080i60,而不是使用720p60为运动和事物获得相同的时间分辨率?它类似于1920x540p60,但是在奇数场和偶数场之间有一个愚蠢的垂直偏移,需要在接收端进行大量计算才能使其看起来不可怕。

编辑:

对于您的用例,我绝对建议在本机FPS上进行归档。不要丢帧丢掉任何信息。不要复制帧并使文件变大(或使您的h.264编码器花费更多时间注意重复项,并输出一个充满跳过宏块的帧,整个帧仅占用20个字节)。

将来,当我们希望所有的Freesync显示器都可以播放任何帧率时,您将需要撤消上拉至24fps的操作,以便视频播放更加流畅!或者,如果以某种方式无法保持自由同步,或者LCD之后显示的是CFR,则速率转换最好还是在播放时完成。这并不是24fps甚至可以在60Hz显示器上完美播放。(我没有从视觉上注意到一些帧显示为3 * 1/60的帧,而有些帧显示为2 * 1/60的事实,但这是事实。)

如果您在使用Quicktime时遇到问题,请使用IDK。也许要确保Handbrake正在以h.264比特流以及容器设置正确的帧速率来制作文件。(是的,h.264标头显然可以存储帧速率,与容器所说的分开。请参阅文档mkvmerge --fix-bitstream-timing-information。然后尝试将其与--default-duration 16fps用于制作mkv文件。然后将其复用回mp4,看看是否可以解决quicktime? )或者也许有一种方法可以首先使用mp4工具。参见例如:https : //askubuntu.com/questions/370692/how-to-change-the-framerate-of-a-video-without-reencoding

我可以保证任意帧率mp4都是有效的,甚至可变帧率mp4都是有效的。如果Quicktime错了,那很可能是Quicktime的错。也许是Handbrake的错误导致了文件错误。我通常直接使用ffmpeg,因为我是命令行忍者。


2

要回答您的问题-是的,通常您可以按照所需的任何帧频对视频文件进行编码。(尽管某些软件可能会选择限制您以简化软件。)问题是您选择的传送格式是否支持它,播放设备是否支持它?

如果您有16 fps的8毫米胶片,如果知道要支持的播放设备可以处理16 fps,则可以将其编码为16 fps。如果没有,我可能会使用支持光流的软件(有时称为运动估计)以24 fps对其进行编码,这可能是编码软件,解码软件和大多数播放硬件可能支持的最接近的帧速率。

支持光流的软件(或硬件)将根据视频中对象的运动生成中间帧。它不会重复一个帧,甚至不会混合两个帧,它会生成一个新帧,该帧通常非常接近以您以输出帧速率记录的实际记录。


我将以本机帧速率进行编码,以避免扔掉任何信息,或复制任何帧以为编解码器创建额外的工作。另外,将来我们希望大家都拥有可以播放任何帧率的freesync显示器。如果不是这样,则速率转换最好在播放时完成,尤其是在播放时。如果我们谈论的是归档时间表。
彼得·科德斯

2

根据历史记录,有24 FPS来自电影(电影)。胶卷是用胶卷制成的,并且选择了速度以使动作平稳。

25 FPS来自欧洲的电源频率50 Hz(50 FPS来自同一电源,但实际上是它的两倍)。实际上,欧洲的电视为50 FPS,但半帧是隔行扫描的

30 FPS来自美国的电源频率60 Hz(60 FPS来自同一电源,但实际上是它的两倍)。实际上,美国的电视为60 FPS,但半帧是隔行扫描的

16 FPS的普及程度不及专业用途的标准,因此也许这就是大多数当前软件未使用它的原因。而且,这样的FPS将不能“平滑”足够的快速运动。我有一个疯狂的想法,您如何才能使16 FPS更好地匹配24。突出显示每个偶数和奇数帧,并使它们之间的平均值相同:)


谢谢您的帮助,但无法回答我的问题。我知道24、25、50和60的来源。我要问的是其他帧率是否可以正常工作。
尼尔森

1

大多数视频都遵循已设置的电视和电影视频标准。计算机通常可以显示多种帧速率的视频,但是某些电视可能会使用奇特的帧速率,因此可能会遇到麻烦,因为它们可能使用更专门的显示电路。即使在计算机上,实际显示的帧速率也可能与视频文件的帧速率不匹配,具体取决于显示器支持的刷新率。

是的,非整数帧速率的显示方式有所不同。它们被称为“丢帧”,并且主要是出于遗留原因而存在。播放时,每隔一帧(从时间码)丢弃一帧,以弥补时间差,并以适当的速率扩展帧以保持平滑。不过,这更多与旧格式的同步内容有关,并且可以防止不再相关的同步问题。

您可以使用非标准的帧速率,并且在PC上可以正常播放,但是对于Bluray等事物,它不符合标准视频,并且在某些电视上可能无法正常播放。(甚至在其工作的情况下,它也可能会实时进行下拉以符合标准帧速率,而预先完成下拉操作可能会带来更好的质量。)


@ user1118321是的,谢谢您指出这一点可能会更加清楚。
AJ Henderson

-1

您的问题不是关于普通费率,而是关于将电影数字化应使用的费率。答案:如果可能,您应该使用原始费率,因为您希望以数字形式保存源。然后,您可以将其转换为查看所需的任何帧频。在过去,戏剧演示通常表示24fps,视频交错表示29.97fps。如今,您几乎可以做任何事情,但您需要有一个良好的资源,该资源应尽可能清晰地匹配原始内容。


不,我的问题是关于共同汇率。并且在几年前得到了充分的回答。
尼尔森

-3

其他一些注意事项。首先,由于霍比特人(Hobbit)技术的发展,现在YouTube对帧率的支持,48 fps变得越来越流行和普遍。其次,30 fps实际上通常为29.97 fps,而60通常约为59.94。


2
实际上,30并不总是意味着29.97。有时实际上是30。24也是如此。23.98、24、29.97、30、50、59.94和60都是完全有效的常用帧率。带有小数位的数字表示与各个国家/地区的广播电视兼容,但它们仍是intweb上的公平游戏。不过,某些摄像机制造商确实对其帧速率“撒谎”。标有24p的摄像头实际上可以提供23.98的分辨率,以使消费者避免出现条带问题和其背后的技术细节。
杰森·康拉德

@JasonConrad帧频并非总是四舍五入,但对于大多数消费类相机而言,却是。
KC McLaughlin

@KCMcLaughlin-实际上,在逐行扫描设备上越来越有可能丢弃丢帧并直接提高整数帧速率。29.97和23.976在这一点上纯属遗留,并已越来越多地被纯整数帧速率取代。
AJ Henderson

@KCMcLaughlin Color NTSC从未达到29.97fps。过去是,现在仍然是30000/1001。同样,转播到彩色NTSC上的24p内容实际上将是24000/1001。另外,我的数码相机(lumix)记录的是30fps,而不是30 / 1.001。如果我每48ksample音频播放不同数量的帧,A / V将不同步。
彼得·科德斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.