问题标签 [libvpx]

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 投票
1 回答
1594 浏览

ffmpeg - ffmpeg 编解码转换;无法配置编码器

我只是想将我拥有的 vp9 webm 转换为 vp8 webm。这是我正在使用的命令。

vp8 编码器返回一个奇怪的错误

如果我对我是否安装了正确的编码器和解码器有任何疑问,则输出ffmpeg -codecs | grep "vp[8-9]"

0 投票
1 回答
444 浏览

c - 如何正确调用 libvpx.so 中的函数?

我想解码从 UDP 接收到的 vp8 帧数据。那么如何调用 libvpx.so 中的函数呢?

我下载了 libvpx v1.8.1。包,我编译了 libvpx 以获取 libvpx.so。我的电脑是:

Linux ubuntu 4.18.0-25-generic #26~18.04.1-Ubuntu SMP

我的 libvpx.so 配置是:

../configure --log=yes --target=x86_64-linux-gcc --enable-pic --enable-ccache --enable-debug --enable-install-docs --enable-unit-tests --enable -decode-perf-tests --enable-encode-perf-tests --enable-better-hw-compatibility --enable-vp8 --enable-vp9 --enable-internal-stats --enable-postproc --enable- vp9-postproc --enable-error-concealment --enable-shared --enable-multi-res-encoding --enable-webm-io --enable-libyuv

我写了 ac 文件来做上面的事情。我的源文件是:

我将 libvpx.so 文件和包中的 vpx/* 源代码放在与我的源 C 代码相同的路径中。我使用 gcc 像这样编译文件:

gcc -墙 -L。-lvpx udpframedecoder.c -o 主

但我得到了这个:

“vpx_codec_control_”包含在“vpx/vpx_codec.h”中。并且“vpx/vpx_decoder.h”包括“vpx/vpx_codec.h”。看来我没有很好地链接 .so 文件。但我不知道哪里错了。有人可以帮我吗?

0 投票
1 回答
778 浏览

ffmpeg - 在 Windows 上启用 libvpx 编译 ffmpeg 库

需要一些关于在 Windows 上启用 libvpx 编译 ffmpeg 的信息。这是我遵循的步骤和我得到的错误

  1. 在 Windows 上安装 msys2 并安装所需的软件包(git、pkg-config、gcc 编译器等)
  2. 从“ https://github.com/webmproject/libvpx.git ”克隆 libvpx并创建了一个 vs15 解决方案(命令:./configure --disable-vp8 --disable-vp9-encoder --target=x86_64-win64-vs15 )
  3. 打开 vpx.sln 并成功编译 vpxmd.lib(创建了一个 vpx.pc 文件并将包含和库保存在适当的位置)
  4. 从https://github.com/FFmpeg/FFmpeg.git和 msys2克隆 ffmpeg我尝试构建它(命令:./configure --enable-asm --enable-yasm --arch=x86_64 --target-os= win64 --disable-encoders --disable-muxers --enable-libvpx --disable-doc --disable-ffplay --disable-ffprobe --disable-ffmpeg --enable-shared --disable-static --disable- bzlib --disable-libopenjpeg --disable-iconv --disable-zlib --prefix=/d/Stadia/FFmpeg --toolchain=msvc --disable-debug)

ffmpeg 构建了一个很好的库,但它不包括 libvpx。config.log 如下:

./ffconf.NEscC1Fm/test.c(4): 警告 C4311: 'type cast': 从'vpx_codec_iface_t *(__cdecl *)(void)' 到'long' 的指针截断

./compat/windows/mslink /usr/local/lib -nologo -I/usr/local/include -libpath:/usr/local/lib -out:./ffconf.NEscC1Fm/test.exe ./ffconf.NEscC1Fm/ test.o vpx.lib

链接:警告 LNK4044:无法识别的选项“/IC:/msys64/usr/local/include”;忽略 lib.obj(vp8_vp8_dx_iface.obj) :找到 MSIL .netmodule 或使用 /GL 编译的模块;重新启动与 /LTCG 的链接;将 /LTCG 添加到链接命令行以提高链接器性能

链接:警告 LNK4044:无法识别的选项“/IC:/msys64/usr/local/include”;忽略

链接:警告 LNK4098:defaultlib 'MSVCRT' 与使用其他库冲突;使用 /NODEFAULTLIB:library lib.obj(vpx_mem_vpx_mem.obj):错误 LNK2001:未解析的外部符号 __imp_malloc lib.obj(vp8_decoder_threading.obj):错误 LNK2001:未解析的外部符号 __imp__beginthreadex lib.obj(vp8_decoder_decodeframe.obj):错误 LNK2001:未解析外部符号 __imp_fopen ./ffconf.NEscC1Fm/test.exe : 致命错误 LNK1120: 3 unresolved externals

我的 msys2 安装在 C:/msys2/ 和 /home/ 对应于 C/msys2/home 如果我使用 --extra-ldflags="-L/home/usr/local/lib" ,链接器将其视为 /LC: /msys2/usr/local/lib 并因此失败。

一步一步的指南将非常感谢这里

0 投票
0 回答
393 浏览

ffmpeg - 使用 ffmpeg 将 .mov 文件转换为 webm 需要什么?

我正在尝试使用 Mac 上终端的 ffmpeg 将 .mov 文件转换为 .webm。但是我并没有真正得到我应该安装什么来完成转换:我已经安装了 libvpx

我已经安装了ffmpeg

但是当我尝试像这样转换文件时

我收到此错误:

那我该怎么办?如何启用默认编码器?有什么我应该做的不同的事情或者我需要安装更多的东西吗?

0 投票
2 回答
1009 浏览

video - FFMPEG:将 WebM VP8/VP9 多分辨率视频转换为 MP4 (H.264)

我一直在尝试将多分辨率 WebM 视频( VP9/VP8/H.264 )(1280 x 1080 直到一半,然后是 1080 x 1280)转换为具有 H.264 视频编码的 MP4 容器。

当使用 FFMPEG 进行转码时,它会锁定在使用 libvpx(对于 VP8 和 VP9)和 libx264(对于 H264)进行转码时在视频开始时遇到的帧大小(在这种情况下为 1280 x 1080)。

我唯一能做对的例子是当 Input WebM 有 H.264 视频和 opus 音频时,ffmpeg 被指示只复制视频流并将音频转码为 aac。

有没有办法让ffmpeg支持多分辨率视频转码?

如何生成示例视频:在支持 mediaRecorder API 的 Chrome 或 Firefox(在支持自动旋转且纵向和横向分辨率不同的设备上)上转到此链接:https ://webrtc.github.io/samples/src /content/getusermedia/record/,开始录制视频,同时录制视频,改变方向,停止录制并下载视频。文件)

讨论参考:https ://groups.google.com/a/webmproject.org/forum/#!topic/webm-discuss/IgumDyMAHY0

0 投票
0 回答
380 浏览

c++ - 使用 libvpx 的实时 VP9 编码

我想使用 VP9 编解码器实时编码 3D 渲染图像,以便通过网络发送它们。我需要小的延迟(理想情况下每个帧都应该单独编码),所以 FFMPEG 具有分离的发送和接收功能不是一个选项。我选择了 libvpx。

我实现了功能,但它提供了可怕的性能(在 1280x728 分辨率下 <1FPS,没有色度二次采样,位深度 8)。

现在的问题是,当我为这个特定的用例初始化编码器时,我不知道应该通过什么设置。

此外,即使我知道加速 VP9 的选项(例如“speed”和“row-mt”),它们是 VP9 特定的,我无法找到一种方法来调整那些使用 libvpx 的 API 的选项,即使在查看之后源代码。看起来它们所在的结构(例如 VP9EncoderConfig)并未以任何方式向用户公开。

TL;博士:

  1. 哪些编码器设置适合我的用例?
  2. 如果它们是特定于 VP9 的,如何将它们传递到 libvpx 中?
0 投票
1 回答
284 浏览

video - FFMPEG:如何修复通过拼接多个 WebM 文件创建的 WebM 文件?

我有一个文件,其中有多个WebM(vp9/opus)流按顺序缝合在一起。

当尝试通过常规媒体播放器播放它时,它会在序列中的第一个流的末尾停止。

当用于将其FFMPEG转码为 时,转码将MP4在第一个流的末尾停止。

使用FFMPEG是否可以WebM(vp9/opus)从包含多个WebM(vp9/opus)按顺序拼接在一起的文件中制作常规文件?

0 投票
0 回答
49 浏览

c++ - 如何配置 launch.json 以使用 Visual Studio 代码调试 libvpx 源示例?

我需要使用 Visual Studio 代码构建libvpx源代码。然后,运行并调试vp8_multi_resolution_encoder.c

为了构建项目任务,我使用 tasks.json 如下:

}

launch.json调试vp8_multi_resolution_encoder的关键配置是什么?

0 投票
0 回答
112 浏览

gcc - 如何在 cygwin 中为 x64-win64-gcc 配置/启用 libvpx 配置文件?

用户@DESKTOP-H6N1GOG /cygdrive/c/libvpx

$ ./configure --enable-unit-tests

启用 unit_tests

启用 vp8_encoder

启用 vp8_decoder

启用 vp9_encoder

启用 vp9_decoder 为目标“x86-win32-gcc”配置

启用 x86

启用 runtime_cpu_detect

禁用 avx512:编译器不支持

没有找到 yasm 和 nasm。有关更多信息,请参阅自述文件中的先决条件部分。

配置失败。这可能反映了您的工具链配置错误、选择了不正确的选项或其他问题。如果您在上面没有看到任何有用的错误消息,下一步是查看配置错误日志文件 (config.log) 以确定 configure 在它死亡时尝试执行的操作。

如何使用 cygwin 以 x64 为目标构建?我在 Windows 10 中使用 Cygwin。

0 投票
0 回答
33 浏览

voip - 如何向当前使用过时编解码器的现有 VoIP 软件添加新的改进编解码器库(比如 AV1 的 libaom)

所以有这个应用程序 RetroShare 目前使用 speex 编解码器和 libav 编解码器进行 VOIP 通信。

我想做的是使用 AV1 编解码器改进它的 VoIP。但是我应该如何继续这个想法?

- 就像我必须对其源代码进行哪些更改?

- 我需要获得 AV1 libaom 库吗?

- 任何人都可以给我链接一个指南,或者更好地教我如何去做......这真的很有帮助。

事情是我知道不同编解码器(如 AV1、VP9、H264 等)及其各自库的编码和解码。但我不知道在软件中使用它们的实际实现。理论知识不足以让我开始编码和改进它的 VoIP