Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 积极的h.264压缩设置,特别适用于场景变化非常小的非常长的场景_Video_Encoding_Compression_Ffmpeg_H.264 - Fatal编程技术网

Video 积极的h.264压缩设置,特别适用于场景变化非常小的非常长的场景

Video 积极的h.264压缩设置,特别适用于场景变化非常小的非常长的场景,video,encoding,compression,ffmpeg,h.264,Video,Encoding,Compression,Ffmpeg,H.264,假设我有一个视频流,在很长一段时间(几分钟到几小时)内几乎没有场景变化,并且我使用FFmpeg之类的东西将原始视频转码到h.264,我可以使用什么设置来利用超大冗余 它是否像将最小关键帧间隔设置为最大(无论是什么)一样简单 h.264规范中是否有空间增强FFmpeg,以便在不改变场景的情况下进一步利用很长的时间?首先,请注意,FFmpeg本身并不编码h264,而是编码h264 是的,定义一个异常长的视频应该可以大大减少长时间几乎没有运动的视频的大小。为什么?因为“关键帧”是一个包含所有视频数据的

假设我有一个视频流,在很长一段时间(几分钟到几小时)内几乎没有场景变化,并且我使用FFmpeg之类的东西将原始视频转码到h.264,我可以使用什么设置来利用超大冗余

它是否像将最小关键帧间隔设置为最大(无论是什么)一样简单


h.264规范中是否有空间增强FFmpeg,以便在不改变场景的情况下进一步利用很长的时间?

首先,请注意,FFmpeg本身并不编码h264,而是编码h264

是的,定义一个异常长的视频应该可以大大减少长时间几乎没有运动的视频的大小。为什么?因为“关键帧”是一个包含所有视频数据的帧——一个快照,如果你愿意的话。所有其他帧将与关键帧不同。这样做的一个警告是,如果中间帧有任何损坏,则视频将损坏,直到出现下一个关键帧

要在使用FFmpeg编码时明确设置关键帧间隔,请使用
-g
开关。如果视频为每秒25帧,并且希望关键帧在视频中每分钟显示一次,请将
-g 1500
添加到FFmpeg命令行。(25华氏度x 60华氏度=1500华氏度)


对于您可能感兴趣的关键帧,您还可以控制其他有趣的方面,其中许多方面都在此处进行了说明:

它是用于视频流还是用于视频文件?它是视频流。我想对一个很少改变的MJPEG流进行转码(想象一下,一个摄像机盯着一个大厅,几乎从来没有任何运动,当它运动时,它被隔离到屏幕的小区域)。MJPEG的质量很好,每1~5分钟才出现一次(超低带宽摄像头),压缩噪音非常小。由于其他限制,我正在转换到h.264。你必须非常小心关键帧间隔。如果关键帧之间的持续时间过长,则搜索或快速搜索将非常困难且耗时(因为要搜索的帧和上一个关键帧之间的所有帧都需要解码)。