登录
首页 >  Golang >  Go问答

将视频中的帧获取到矩阵中

来源:stackoverflow

时间:2024-03-31 11:00:36 393浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《将视频中的帧获取到矩阵中》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

我目前正在尝试为作业实现压缩算法(帧预测)。 我不是在寻找缩略图文件,甚至只是一个 shell 命令来为我生成一些东西。我的问题是专门将它与 golang 程序集成。

我才刚刚开始,就已经陷入困境了。我应该从视频中取出每一帧,将其分为IP帧和B帧并执行帧间编码(压缩帧本身),然后执行帧内编码(帧之间)。

现在我什至无法开始解决上述问题,因为我不知道如何将视频读取为可以在代码中使用的东西。显然,我能想到的唯一库是 ffmpeg。 FFMPEG 可以获取单独的帧,显然甚至是 i p 和 b 帧。

ffmpeg -i -vf '[in]select=eq(pict_type\,B)[out]' b.frames.mp4

但这只是另一个视频输出,我不知道如何打开。 我的想法是将帧输出到位图(?),然后分别读取每个位图,以重建 i 帧、p 帧和 b 帧的三个 3D 矩阵。然而,这似乎是一项壮举。某个地方的某个人肯定尝试过将视频解析为 3D 矩阵,并且找到了比我想象的更好的解决方案。

简而言之,我有一个视频,我需要一个 3D 矩阵。 3D 矩阵是 2D 矩阵的矩阵,代表视频中的帧。 3D 矩阵中的每个点都是一个像素(或视频中的任何等效项)。


解决方案


I/P/B 帧仅存在于原始比特流中。视频解码后,所有帧都是 I 帧。您可能想使用 ffmprg 解码为 yuv4mpegpipe 之类的内容,然后解析 golang 程序中的输出。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>