问题标签 [libx265]

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

codec - 为什么 x264 / x265 无损编码比有损编码慢

我正在比较 x264 和 x265 编码器,lossless以及medium预设。看到以下性能结果,我感到非常惊讶。

它向我提出了两个问题

  1. 为什么无损编码每秒处理的帧数比有损编码少?(我认为应该减少处理)

  2. 为什么x265无损输出比x264无损输出大很多?这是实现效果,还是与 HEVC 标准有关?

0 投票
2 回答
12710 浏览

macos - 如何在 Mac OSX 上为 ffmpeg 安装 libx265

我在这里尝试了多个指南(搜索“Building libx265”)但没有成功。两次我都确保我先卸载了 ffmpeg,浏览了指南,然后运行

brew install ffmpeg --with-fdk-aac --with-freetype --with-libass --with-libvpx --enable-libx265

不管我什么时候去运行一个命令

ffmpeg -i source.mkv -c:v libx265 test1.mkv

我得到错误:

Unknown encoder 'libx265'

有没有人成功构建 libx265 以在 OSX 上与 ffmpeg 一起使用,您能分享一下您是如何做到的吗?

PS 我正在运行 OSX 10.11.3

0 投票
1 回答
8827 浏览

ffmpeg - 如何使用 ffmpeg - libx265 获得无损编码

我想使用 ffmpeg 使用 x265 编码器在 HEVC/mkv 视频中转换 16 位灰度图像而不会丢失。我使用单色12 配置文件。我的第一步是将图像转换为 yuv 格式:

我尝试将它无损地转换为 .mkv 文件:

但我明白了

当我不写 lossless=1 时,一切都很好,但是我无法通过这种方式制作无损视频。

感谢您的帮助。

0 投票
0 回答
481 浏览

ffmpeg - FFMPEG 运动补偿和搜索

我正在尝试修改 FFMPEG 的运动检测部分。我想要做的是扩展搜索空间,这样每当宏块碰到帧的最右边时,我需要它仍然将块移动到最左边,就好像它们是连接的一样(在我的示例视频中,右边缘实际上是左边缘的延续)。有人可以帮我指出我可以在 FFMPEG 源代码或 x265 或 x264 中修改它的确切位置吗?

在此处输入图像描述

我从这里以 H265 为例。它有一个motion.cpp文件很好地指定了可能的块大小,如下所示。但我找不到遍历框架的特定循环。高度赞赏帮助。

更新:

frameFilter.cpp一种方法(在x265中)是修改边缘扩展区域(已经在代码中,在 我在这里确定了这段代码。有人可以帮我为从右到左扩展添加此功能吗?

0 投票
0 回答
75 浏览

ffmpeg - libx265运动补偿和CU遍历

我正在尝试使用 H.265 运动补偿和搜索(此处的 HEVC-libx265 实现:https ://bitbucket.org/multicoreware/x265/downloads )。我需要稍微扩展边缘扩展搜索,并用最左边的像素填充宏块,就好像我的示例视频像圆柱体一样(最右边连接到最左边)。

我需要做的基本上是这样的:

在此处输入图像描述

一种方法是修改边缘扩展区域(已经在代码中,在 中frameFilter.cpp),并对最右边执行此操作,并用最左边的像素填充块的部分。我在这里确定了这段代码,这显然是造成这种情况的原因。有人可以帮我实现这个功能吗?

0 投票
1 回答
122 浏览

gcc - llvm-gcc-4.2 报告的奇怪的前向声明错误

当我在 Xcode4.6.3 中使用 llvm-gcc-4.2 编译“x265”源时,它报告了一个奇怪的错误:./source/encoder/reference.h:38:error: forward declaration of 'class x265::MotionReference'。但是,x265::MotionReference 的类声明在reference.h 中是完整的:

它的父类在头文件'lowres.h'中定义:

有人知道为什么吗?任何线索将不胜感激!提前致谢!

0 投票
3 回答
215 浏览

video-streaming - 当有 h265 的开源编码器时,为什么 google 和开放媒体联盟会制作自己的视频编解码器

我读到谷歌和开放媒体联盟正在制作他们自己的编解码器(vp9/av1),因为 h265 的许可成本很高,但我看到有开源 x265 编码器,它们在 gpl v2 下获得许可,所以 x265免费使用,不是吗?

那么为什么谷歌和开放媒体联盟要制作自己的编解码器呢?

0 投票
0 回答
333 浏览

c++ - 在 hevc x265 中实现新的帧内预测模式

我是一名研究生,目前致力于扩展现代图像和视频压缩编解码器以实现更好的性能。我目前正在修改BPG(更好的便携式图形)和 x265(HEVC/H.265 实现)。

我目前的方法涉及添加额外的帧内预测模式,这些模式可以利用比上方 CTU(编码树单元)的 1 个像素行和左侧 CTU 的 1 个像素列更多的信息量。

我已经实现了我的方法并将我的内部预测模式命名为“35”(BPG 和 hevc 使用模式从 0-34)。我目前的方法要求我每次使用帧内预测模式时都存储两个额外的数字(12 位)。我在将这两个数字嵌入比特流(编码)和从比特流中检索它们(解码)时遇到了问题。

我从 BPG 提供的 x265 包中修改了 entropy.cpp 中的函数codeIntraDirLumaAng以便它在遇到我的新帧内预测模式 35 时写入两个附加数字。

我的一组问题如下。

1)鉴于我有更多的预测模式,并且我希望它们增加更多,我应该修改以下代码行

成为

2)当我运行解码器时,它第一次遇到它应该存储模式 35 的实例。它无法读取它,而是读取模式 26。我相信这是因为 hevc 中 Intra-Luma Pred-Dir 的派生程序?(有关如何将我的新帧内预测模式正确嵌入比特流以便正确读取的任何输入)?

3) 我应该对我编码的两个附加数字的 CABAC 状态做些什么吗?我创建了一个额外的上下文来处理这种新的信息。我将不胜感激有关如何设置我另外定义的 NUM_STATES_CTX 变量的值以及如何使用 CABAC 对这两个数字进行最佳编码的指针?

0 投票
1 回答
294 浏览

x264 - libx265 和 libx264 库是否实现了解码器?

我对 videolan 开发的这两个编解码器库有一个问题。

x265(libx265) 是否实现了解码器?x264(libx264)的同样问题。

谢谢您的回答。

0 投票
2 回答
64 浏览

c++ - 读取文件并将其输入为整数数组

我正在研究 HEVC,即 X265,在这里我正在尝试使用从文件中读取的值输入 QP 数组。我知道 qp 数组的值将从 0 到 100。

我创建了一个测试文件并输入 1 和 0 的组合直到 99。文件如下所示:

我为此目的编写的代码如下:

但我无法拥有正确的价值观。qp_input 保持为 0。我做错了什么?