问题标签 [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.
image-processing - 对 x264 和编码视频帧感到困惑
我构建了一个测试驱动程序,用于对我捕获的一系列图像进行编码。我正在使用 libx264 并基于这个人的回答来驱动我的驱动程序:
在我的情况下,我首先读取 JPG 图像并转换为 YUV,然后在循环中一遍又一遍地将同一帧传递给 x264 编码器。
我的期望是,由于帧相同,编码器的输出将非常小且恒定。
相反,我发现 NAL 有效负载从几个字节到几个 KB 不等,并且根据我在编码器参数中指定的帧速率变化很大。
显然我不懂视频编码。为什么输出大小变化如此之大?
我正在阅读的原始 JPG 图像是 320x240,磁盘上大约有 9KB。通过编码器运行相同图像的输出如下所示:
如果我将 FPS 设置为 10 而不是 30,那么输出大小会发生巨大变化:
你能启发我吗?
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”的引用
附加信息
构建avconv时也会出现此错误。它在链接时也会失败,并出现相同的错误。所以我可以假设该目录或源没有问题。
c++ - 带有 x264 编码的 FFMPEG
我正在尝试使用 ffmpeg + x264 将视频从 jpeg 图像集编码为 h264。我以这种方式初始化 AVCodecContext:
avcodec_open 没有返回错误,一切正常,但是当我调用 avcodec_encode_video2() 时,我收到这样的消息(我认为它来自 x264):
然后应用程序崩溃。使用 x264 && 时,编解码器上下文有更多必要的设置
compilation - 在 qnap 上编译 x264 时出错
我们在 qnap 上编译 x264 时遇到问题。
我们需要用 x264 库编译 ffmpeg,qnap 包有内置的 x264 0.66 库,但是 ffmpeg-0.9.2 不支持太旧的 x264 版本,并且在从源代码编译 x264 时会产生以下错误。
有人可以帮助我吗?
c++ - 在同一连接或拆分连接上流式传输视频和命令?
背景
我正在编写一个客户端/服务器应用程序,我将安装在我办公室的每台机器上(大约 30 - 35 台机器)。我目前有客户端连接到服务器,它能够发送鼠标移动、鼠标点击、击键和执行某些命令。下一步是流回屏幕的视频输出,我使用最快的屏幕捕获方法中的 GDI 方法来捕获整个屏幕,并将使用 x264 编码器压缩帧并将它们传输回客户端然后将解码并显示流。
问题
最好(通过减少延迟,确保所有命令尽可能快地交付并且流尽可能实时)我沿着我为命令建立的相同连接传输回来,或者,我应该建立一个单独的连接吗?在同一个端口上连接,还是在不同的端口上流回视频?
附言
我知道 VNC、RD 和其他东西(例如 TeamViewer)已经存在并且已经在做这类事情,但是这些都不支持我们在这个系统中需要的所有要求。
sse - x264 库速度 - Altivec 与 SSE4 -
我有简单便宜的双核 intel-3ghz-debian 和超级昂贵的 powerPc7-Aix。
经过几天的奋斗,我编译了libx264并在两台计算机上进行了测试:
- GCC:intel 上的 x264 库(具有 SSE2 功能)和
- 16 核 powerPc 上的 GCC(使用 altivec)。
...结果是便宜的英特尔快了2 倍!(禁用 altivec,英特尔快 10 倍)
我的问题:这正常吗?所有其他 powerPC 用户是否有相同的结果?x264 库的 powerPc-altivec-optimisation 可以与英特尔以相同的速度工作吗?
我对多线程选项不感兴趣。核心数和线程数无关紧要。只是简单的单线程 x264 编码,默认“中等预设”,使用 rawvideo 作为源,sse vs altivec。
也许原生 Aix XLC 编译器会提供更好的结果?(我只管理 gcc 工作)
... mac-powerpc-users 可能对此有所了解。
android - 为 Android 平台编译带有线程支持的 x264
我一直在尝试为具有线程支持的Android编译x264 ……但没有成功……
我已经设法在没有线程支持的情况下编译了它......配置命令如下:
在哪里PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86
和
PLATFORM=$NDK/platforms/android-14/arch-arm
我也尝试过使用和不使用选项--enable-static
and extra-ldflags="-lpthread"
,但是当尝试时make
它以错误结束。
有什么办法可以完成上述...?
c++ - 如何在 C++ 中使用 libav 设置 x264 基线配置文件
我正在编写一个小工具,它将视频转换为原始 h264 文件。这些文件稍后将由 SIP 电话播放。我有以下代码:
当我执行这个程序时,我从 libx264 得到以下输出:
为什么这仍然是主要配置文件,尽管我已将其明确设置为基线?
此外,如果有人可以添加一些注释,哪种 h264 设置对 SIP 电话有用,我会非常酷。非常感谢!
video - X264 解码器完整帧不在一个 NAL 单元中
我正在使用 libX264 库进行编码。编码后数据采用 NAL 单元()的形式.....。这是我需要的相同格式(AVC),但问题是一帧来自两个 Nal 单元(一帧 =(长度,数据)+(长度,数据))并且我需要(一帧=(长度,数据)以单个最终单位)。当我转换为文件然后播放时,它首先显示屏幕的上部,然后显示下部。我的配置参数如下
x264 - 当我使用 x264 时这是正确的吗?
这是使用新的 x264 api 的权利吗,我想得到一个框架,并用 x264 对其进行编码,然后将其保存到 .264 文件中?但我不知道这是对的吗?