问题标签 [libx264]

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 回答
4300 浏览

image-processing - 对 x264 和编码视频帧感到困惑

我构建了一个测试驱动程序,用于对我捕获的一系列图像进行编码。我正在使用 libx264 并基于这个人的回答来驱动我的驱动程序:

StackOverflow 链接

在我的情况下,我首先读取 JPG 图像并转换为 YUV,然后在循环中一遍又一遍地将同一帧传递给 x264 编码器。

我的期望是,由于帧相同,编码器的输出将非常小且恒定。

相反,我发现 NAL 有效负载从几个字节到几个 KB 不等,并且根据我在编码器参数中指定的帧速率变化很大。

显然我不懂视频编码。为什么输出大小变化如此之大?

我正在阅读的原始 JPG 图像是 320x240,磁盘上大约有 9KB。通过编码器运行相同图像的输出如下所示:

如果我将 FPS 设置为 10 而不是 30,那么输出大小会发生巨大变化:

你能启发我吗?

0 投票
1 回答
2499 浏览

linux - VLC libx264 构建错误 - “未定义对 'x264_encoder_open_128' 的引用”

主要问题

尝试重复此错误的步骤。

  • 下载最新的 git (git://git.videolan.org/x264.git)。
  • 运行./configure- 您可以使用任何选项,所有选项都存在错误。
  • 运行sudo make- 它将编译所有代码,但是当需要链接代码时,它会遇到错误

    /usr/local/lib/libavcodec.a(libx264.o):在函数“X264_init”中: /.../libx264.c:
    418:未定义对“x264_encoder_open_128”的引用

然后这将退出并退出make。我已经删除了所有与 x264 相关的 apt 包。我已经在我的计算机上搜索了任何可能相关的库并删除了它们。这个问题仍然存在。有人可以解释发生了什么问题以及解决此问题的最简单方法吗?

附加信息

构建avconv时也会出现此错误。它在链接时也会失败,并出现相同的错误。所以我可以假设该目录或源没有问题。

0 投票
1 回答
3361 浏览

c++ - 带有 x264 编码的 FFMPEG

我正在尝试使用 ffmpeg + x264 将视频从 jpeg 图像集编码为 h264。我以这种方式初始化 AVCodecContext:

avcodec_open 没有返回错误,一切正常,但是当我调用 avcodec_encode_video2() 时,我收到这样的消息(我认为它来自 x264):

然后应用程序崩溃。使用 x264 && 时,编解码器上下文有更多必要的设置

0 投票
3 回答
1171 浏览

compilation - 在 qnap 上编译 x264 时出错

我们在 qnap 上编译 x264 时遇到问题。
我们需要用 x264 库编译 ffmpeg,qnap 包有内置的 x264 0.66 库,但是 ffmpeg-0.9.2 不支持太旧的 x264 版本,并且在从源代码编译 x264 时会产生以下错误。

有人可以帮助我吗?

0 投票
1 回答
142 浏览

c++ - 在同一连接或拆分连接上流式传输视频和命令?

背景

我正在编写一个客户端/服务器应用程序,我将安装在我办公室的每台机器上(大约 30 - 35 台机器)。我目前有客户端连接到服务器,它能够发送鼠标移动、鼠标点击、击键和执行某些命令。下一步是流回屏幕的视频输出,我使用最快的屏幕捕获方法中的 GDI 方法来捕获整个屏幕,并将使用 x264 编码器压缩帧并将它们传输回客户端然后将解码并显示流。

问题

最好(通过减少延迟,确保所有命令尽可能快地交付并且流尽可能实时)我沿着我为命令建立的相同连接传输回来,或者,我应该建立一个单独的连接吗?在同一个端口上连接,还是在不同的端口上流回视频?

附言

我知道 VNC、RD 和其他东西(例如 TeamViewer)已经存在并且已经在做这类事情,但是这些都不支持我们在这个系统中需要的所有要求。

0 投票
1 回答
2146 浏览

sse - x264 库速度 - Altivec 与 SSE4 -

我有简单便宜的双核 intel-3ghz-debian 和超级昂贵的 powerPc7-Aix。

经过几天的奋斗,我编译了libx264并在两台计算机上进行了测试:

  1. GCC:intel 上的 x264 库(具有 SSE2 功能)和
  2. 16 核 powerPc 上的 GCC(使用 altivec)。

...结果是便宜的英特尔快了2 倍!(禁用 altivec,英特尔快 10 倍)

我的问题:这正常吗?所有其他 powerPC 用户是否有相同的结果?x264 库的 powerPc-altivec-optimisation 可以与英特尔以相同的速度工作吗?

我对多线程选项不感兴趣。核心数和线程数无关紧要。只是简单的单线程 x264 编码,默认“中等预设”,使用 rawvideo 作为源,sse vs altivec。

也许原生 Aix XLC 编译器会提供更好的结果?(我只管理 gcc 工作)

... mac-powerpc-users 可能对此有所了解。

0 投票
1 回答
1091 浏览

android - 为 Android 平台编译带有线程支持的 x264

我一直在尝试为具有线程支持的Android编译x264 ……但没有成功……

我已经设法在没有线程支持的情况下编译了它......配置命令如下:

在哪里PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86PLATFORM=$NDK/platforms/android-14/arch-arm

我也尝试过使用和不使用选项--enable-staticand extra-ldflags="-lpthread",但是当尝试时make它以错误结束。

有什么办法可以完成上述...?

0 投票
2 回答
3855 浏览

c++ - 如何在 C++ 中使用 libav 设置 x264 基线配置文件

我正在编写一个小工具,它将视频转换为原始 h264 文件。这些文件稍后将由 SIP 电话播放。我有以下代码:

当我执行这个程序时,我从 libx264 得到以下输出:

为什么这仍然是主要配置文件,尽管我已将其明确设置为基线?

此外,如果有人可以添加一些注释,哪种 h264 设置对 SIP 电话有用,我会非常酷。非常感谢!

0 投票
2 回答
684 浏览

video - X264 解码器完整帧不在一个 NAL 单元中

我正在使用 libX264 库进行编码。编码后数据采用 NAL 单元()的形式.....。这是我需要的相同格式(AVC),但问题是一帧来自两个 Nal 单元(一帧 =(长度,数据)+(长度,数据))并且我需要(一帧=(长度,数据)以单个最终单位)。当我转换为文件然后播放时,它首先显示屏幕的上部,然后显示下部。我的配置参数如下

0 投票
1 回答
430 浏览

x264 - 当我使用 x264 时这是正确的吗?

这是使用新的 x264 api 的权利吗,我想得到一个框架,并用 x264 对其进行编码,然后将其保存到 .264 文件中?但我不知道这是对的吗?