问题标签 [vp8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3020 浏览

rtp - VP8/VP9 RTP 库

是否有任何现有的库促进通过 RTP 传输 VP8/VP9 流?

我找到了 VP8 的 RFC 草案(https://datatracker.ietf.org/doc/html/draft-ietf-payload-vp8-08),但没有提到 VP9 编解码器(太新了?)。似乎 libavformat 实现了这个草案。有没有人有其他选择?

0 投票
1 回答
1533 浏览

video-streaming - 视频流捕获和帧率控制

我目前正在使用 VP8 和 V4L2 开发视频流软件,但我正在努力解决帧率的关键概念。

我有一个基本的工作实现,它在循环中获取帧,对其进行编码并通过 RTP 发送(尽可能快)。但是,我不明白如何控制视频的帧速率或调节采样。

基本上可以总结如下:

特别是,我不知道如何正确设置:

  • V4L2 捕获循环(是否需要一个计时器来定期获取帧?)
  • V4L2 中的 FRAME INTERVAL 设置(是强制性的吗?)
  • libvpx 时基(我应该使用 1/fps 吗?1001/30000 ?)
  • pts 值(是否需要为 frame num * (1/fps) * 90000 ?)
  • RTP 时间戳(我可以在这里使用 pts 吗?)
  • 可以考虑的任何其他配置设置...
0 投票
5 回答
129954 浏览

ffmpeg - 使用 ffmpeg 将 webm 转换为 mp4

当我尝试将 webm 文件转换为 mp4 时,输出非常不稳定,看起来好像 ffmpeg 丢弃了许多帧

我使用以下命令进行转换

他们都有同样的问题。当我使用 ffprobe 时,它​​似乎或多或少地正确显示了框架。

更新:

0 投票
1 回答
969 浏览

firefox-addon - 具有重复项的复杂动态和静态链接(Firefox 附加组件、WebRTC 和 VP8)

我试图以一种抽象的方式来阐述这个问题,但无论如何我最后都会提供有关实际库的详细信息。

动态库与在汇编中有一些代码的Addon其他库静态链接,WebRTC并且该代码与自己的目标WebRTC文件一起作为目标文件链接到WebRTC。让我们称之为汇编代码VP8。的功能在里面VP8标明。一些函数from调用函数,最终调用函数 from 。externWebRTCEncode()AddonWebRTCVP8

现在,Firefox要加载库的应用程序Addon非常复杂,并且有自己的库版本(意味着静态链接)WebRTC(我们称之为WebRTC2),但版本较旧。

所以,这里有一个问题:如果Encode()从应用程序调用FirefoxWebRTC函数会被调用(不是WebRTC2,这是正确的)但是WebRTC试图调用VP8函数时,它们是从WebRTC2版本调用的(意味着应用程序的版本WebRTC),而不是从WebRTC.

有没有办法强制WebRTC只从本地副本拨打电话VP8

应用程序Firefox是一个 Firefox 浏览器,WebRTC是一个 WebRTC 库,VP8是一个 VP8 编解码器库(在 WebRTC 内部),并且Addon是我的 Firefox C++ 插件。

更新 - 详细说明

这是问题的“非抽象”描述:所以有一个 C++ XPCOM 插件,它与最新版本的 WebRTC 库静态链接。在附加组件内部的某个时刻,调用了对帧进行编码(类方法EncodeVP8Encoder,它一直在 Firefox 中崩溃,同时继续在使用 gtest 框架的测试程序上运行良好。

问题是,在 WebRTC 内部的某个时刻,有 VP8 汇编代码被调用以进行编码,并且该汇编代码的函数被声明为extern在实现文件中。实际上,它在vp8_intra_pred_y_ve_sse2功能上崩溃了。我比较了这个函数的三个汇编代码:一个来自我的 WebRTC 版本(用于附加组件),第二个 - 调试器崩溃的地方,第三个 - 来自 Mozilla 的 WebRTC 的源代码。

事实证明,出于某种奇怪的原因,调用了 Mozilla 的代码而不是加载项的 WebRTC(当然它们都具有相同的名称),并且由于 Mozilla 的 WebRTC 代码已过时,它会因 EXC_BAD_ACCESS 而崩溃。

0 投票
1 回答
1825 浏览

android - 向本机 WebRTC 添加 H.264 支持

我很清楚支持 H.264 并不是 WebRTC 当前维护者的目标。但是,在查看本机代码时,我注意到一些注释掉的位指的是 H.264 RTP 分包器。我正在使用的环境是 OMAP4430,它具有对 H.264 SVC 编码/解码的硬件加速支持,所以如果我可以为我的应用程序重新添加对本机 WebRTC 的 H.264 支持,那就太好了。(VP8 在我的设备上非常慢。)从项目中当前的分包器开始是一个好的开始吗?有没有人这样做/对如何添加 H.264 支持有建议?(我计划将 H.264 WebRTC 数据发送到 Doubango 的 Media Breaker,为常规 WebRTC 客户端提供支持。)

如果上述绝对不可能或非常困难,任何人至少可以推荐我如何在我的设备上获得更好的 VP8 性能?这是一个基于 NEON 的 ARM SoC,所以我想 libvpx 应该自动利用它。有什么方法可以确定吗?

0 投票
0 回答
3997 浏览

ffmpeg - 使用 FFMPEG 的 webm 本地 udp 流

我最近才开始使用 ffmpeg,偶然发现了这个流媒体问题。场景:我想在本地网络中直播网络摄像头。服务器和客户端都将使用 Windows 平台。

目前可行的解决方案:使用ffmpeg简单命令行

为了快速测试它,我尝试在本地流式传输它(在这个问题中输入并不重要)。

上面的工作很好,除了延迟,我得到大约 1-2 秒的延迟。

现在我想尝试更改编码器以将 libvpx (vp8) 用于视频和 vorbis 用于音频(我将输入更改为预先录制的 h264 视频,但这并不重要)

那么ffmpeg的点对点流对vp8不起作用还是我错过了什么?顺便说一句,最终目标是创建一个类似的基于视频聊天的框架,我将不胜感激任何建议。我现在正在阅读 webRTC。

0 投票
1 回答
724 浏览

stream - WebRtc VP8 自定义视频

我想通过网络将 rgb 帧(实时)数据作为视频视频流传输到浏览器(chrome/firefox)中。

所以我完成了 rgb -> yuv ->yv12 -> vp8 转换。我可以在本地播放 vp8 视频,看起来不错。

现在我需要能够将此数据提供给 webrtc,以便其他“客户端”可以看到这一点。

现在这可行吗?

我打算将 vp8 包装在 webm 视频文件周围,但不写实际文件长度,因为我不知道长度,因为它是实时流式传输并在浏览器上创建标签并开始提供数据。(我以前用 Theora 做过这个,“假装流,肯定有点慢,而且是 TCP,但它有延迟工作)。

或者我要将数据提供给 webrtc。我什至不知道api是否允许这样的事情。我可能需要破解一下。

回顾:进程 A 创建一个 NxM rgb 视频并将其写入其缓冲区。进程 B 通过 IPC 读取该缓冲区并将其编码为 VP8 ,进程 B 将其发送到带有 VP8 在 webm 或 webRtc 中的浏览器。

0 投票
1 回答
603 浏览

video-streaming - WebM VP8如何解码非连续帧

任何人都可以告诉我关于 VP8 编码帧如何以“非顺序”正确解码的任何想法吗?”顺序正确解码 VP8 编码帧的想法。我的意思是:

即我有一块从“1”到“X”的VP8编码帧..(每25帧添加一个“I”帧

如果我从“第 1 帧”到“第 13帧”按顺序播放所有帧帧”按顺序播放所有帧- 一切正常,没有伪影。

但是假设我只对解码“第13 帧”感兴趣……它不是“I”帧,所以首先我要解码“第1 帧”(“I”帧),然后才解码“帧” 13 "。但是 frame get 是用一些人工制品解码的,所以我对是什么原因造成的有点困惑? 编码帧

可以在此处找到显示我的意思的简短视频

据我所知,VP8 不使用任何“B”帧?

也许有一些解码器或编码器标志可以用来克服这个问题?

看起来所有 VP8 编码的帧都相互依赖,这是真的吗?

关于支持 WebM 的视频播放器如何完成 ie 视频搜索的任何想法?

谢谢。

0 投票
0 回答
1049 浏览

ffmpeg - 位图图像到 WEBM 视频编码

我正在尝试将位图图像编码为 webm 视频,但生成的视频不可播放这是我正在使用的代码,代码适用于 H624。编码控制台窗口显示:[libvpx @ 009b2f60] v1.2.0 生成的视频文件中没有 webm 字符串。有什么线索吗?(我是 FFMPEG API 的新手)

我想使用此代码通过编码屏幕截图来记录屏幕。我可以使用什么 fps、gop 大小或其他参数来减小视频的大小。

0 投票
2 回答
644 浏览

video - 如何为 vp9 视频解码器创建直接显示过滤器

我是 Direct Show 的新手。我有一个 vp9 解码器的 C 解决方案,并且想创建一个可以解码和播放我的压缩文件的直接显示过滤器。

有人可以帮助我了解如何将这些过滤器添加到直接显示中,这使我可以使用简单的播放、暂停和运行 GUI 来解码我的编码文件。

我的解码器应用程序应该是 exe 还是 dll 类型?

任何有关将自定义编解码器添加\注册到 Direct Show 的材料将不胜感激。

提前感谢您帮助我。