问题标签 [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.
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:
比较:
非常感谢,
汤姆
h.264 - x264/x265 选项可在保持质量的同时快速解码
我想在 H264 和 H265 中编码一些视频,我想寻求帮助以便在 x264/x265 中选择适当的选项。
- 我的首要任务是视频质量。例如,无损将是最好的质量
- 我的第二个优先事项是快速解码速度(即:我希望在不牺牲质量的情况下更快地解码)
- 对我来说,快速解码意味着解码机将使用更少的 CPU 资源来读取生成的视频
- 更少的 RAM 消耗将是一个优势
- 延迟并不重要
- 如果输出文件最终更大,我并不在意。此外,编码速度并不重要
我知道-tune fastdecode
x264 和 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
选项,因为它可以加快解码速度,同时保持质量。
我希望我能明白我的意思
谁能帮我选择正确的选项?
提前致谢
ffmpeg - 将杜比视界 8.4 元数据集成到 x265 编码的流中
我有 iPhone 13 Pro 拍摄的原始视频,杜比视界配置文件 8.4,HLG。有没有办法可以用 x265 压缩它,这样我就可以用更小的尺寸获得几乎相同的质量。
来自杜比视界官网的图片:夹层资产的杜比视界编码 什么是“VES 复用器”,我们可以使用它来组合 iPhone 拍摄的原始文件中的 x265 编码流和 RPU 流。
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"