问题标签 [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 投票
2 回答
318 浏览

ffmpeg - 使用 ffmpeg 对 10 位图像(存储为 16 位 png)进行无损压缩 - 最好使用 HEVC

我正在尝试以视频格式无损编码 10 位图像,最好使用 HEVC 编码。图像存储为 16 位 png 文件(但仅使用 10 位),我一直在使用 ffmpeg 创建和读回视频文件。

到目前为止,我最好的尝试是基于https://stackoverflow.com/a/66180140/17261462但正如那里提到的,我得到了一些像素强度差异,这可能是由于在 10 位和 16 位表示之间转换时舍入造成的。我尝试了几种不同的方法(位移、左位复制、基于浮点的缩放),但还没有弄清楚如何获得真正的无损重建。

下面是一小段代码来复制我的问题。我可能在那里做错了什么,因此我们将不胜感激。

编辑:我现在也在 FFmpeg 用户列表上发布了我的问题:http: //ffmpeg.org/pipermail/ffmpeg-user/2021-November/053761.html

同样为方便起见,下面提供了一个简单的脚本来生成使用 16 位和 10 位数据的不同变体:

以及原始 ffmpeg / image magick 命令。

编码:

解码回png:

比较:

非常感谢,

汤姆

0 投票
1 回答
349 浏览

h.264 - x264/x265 选项可在保持质量的同时快速解码

我想在 H264 和 H265 中编码一些视频,我想寻求帮助以便在 x264/x265 中选择适当的选项。

  • 我的首要任务是视频质量。例如,无损将是最好的质量
  • 我的第二个优先事项是快速解码速度(即:我希望在不牺牲质量的情况下更快地解码)
    • 对我来说,快速解码意味着解码机将使用更少的 CPU 资源来读取生成的视频
    • 更少的 RAM 消耗将是一个优势
    • 延迟并不重要
  • 如果输出文件最终更大,我并不在意。此外,编码速度并不重要

我知道-tune fastdecodex264 和 x265 中的选项。但显然使用它的质量会变差。

对于 x264

-tune fastdecode相当于--no-cabac --no-deblock --no-weightb --weightp 0(我的来源是x264 --fullhelp

哪些选项可以保持质量?

对于 x265

-tune fastdecode相当于--no-deblock --no-sao --no-weightp --no-weightb --no-b-intra(根据x265 doc

同样,哪些选项可以保持质量?

我试图阅读有关这些选项的一些文档,但恐怕我太愚蠢了,无法理解它们是否保持质量。

为了进一步解释我所说的“保持质量”是什么意思:

我不明白 cabac 选项究竟做了什么。但是假设它增加了一些额外的无损压缩,导致视频文件更小,但是解码机器需要做额外的工作来解压文件

在这种情况下,该--no-cabac选项会跳过额外的压缩,不会降低质量,文件大小会更大,并且解码器不需要解压额外的压缩,从而节省解码端的 CPU 工作

在这种情况下,我想添加该--no-cabac选项,因为它可以加快解码速度,同时保持质量。

我希望我能明白我的意思

谁能帮我选择正确的选项?

提前致谢

0 投票
1 回答
51 浏览

ffmpeg - 为什么在 x265 中使用 CQP 模式的初始 QP 的块级实际 QP 值是负 3?

我正在使用 x265 编码器对具有不同初始 QP 值的视频进行编码。当我检查比特流以查看跨帧的每个块的实际 QP 值与给定的初始 QP 值不完全相同时,我感到很惊讶。具体来说,实际QP从初始值减小到负3,如下图(我的初始QP设置为27)。但我不明白为什么。然后,我从 HM-16.20 运行编码器,实际 QP 值与初始 QP 相同。有人可以帮我理解这样做的动机吗?在我看来,x265 编码器希望通过降低实际 QP 值来保持比 HM 软件中的更高的视觉质量。我使用以下命令行运行 x265 编码器:

在此处输入图像描述

0 投票
0 回答
116 浏览

ffmpeg - 将杜比视界 8.4 元数据集成到 x265 编码的流中

我有 iPhone 13 Pro 拍摄的原始视频,杜比视界配置文件 8.4,HLG。有没有办法可以用 x265 压缩它,这样我就可以用更小的尺寸获得几乎相同的质量。

来自杜比视界官网的图片:夹层资产的杜比视界编码 2 什么是“VES 复用器”,我们可以使用它来组合 iPhone 拍摄的原始文件中的 x265 编码流和 RPU 流。

0 投票
0 回答
27 浏览

ffmpeg - FFMPEG 连接视频并在单个命令中转换?

我有一个脚本可以下载在线视频的多个 ts 部分,将它们连接成 mp4 文件

ffmpeg -f concat -safe 0 -i <(printf "file '$PWD/%s'\n" ./*.ts) -c copy "${filename}.mp4"

但是,我喜欢使用 x265 来减小磁盘大小。我玩过它,但我无法让它在这个单行命令中也转换为 x265。

我尝试添加类似-c:v libx265 -c:a copy 而不是 generic 的标志-c copy,但这给了我错误。根据阅读其他一些问题,似乎我需要事先映射?

编辑:我能够让它做我想做的事,但不确定它是最好的选择,还是最有效的。 ffmpeg -f concat -safe 0 -i <(printf "file '$PWD/%s'\n" ./*.ts) -map 0:v:0 -map 0:a? -map 0:s? -preset fast -c:v libx265 -c:a copy -c:s copy -crf 25 -bsf:a aac_adtstoasc "${filename}.mp4"