问题标签 [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 - 使用 x265 编译 FFMPEG 时出现错误:使用 pkg-config 找不到 x265
起初,我在 Mac OS 中有一个 ffmpeg 构建支持 x264 for android 的项目。
现在,我想添加 x265 支持。
我已经用 make & make install 编译了 x265,如下所示:
然后,我运行这个 shell 脚本:
这会导致错误:
我查看了 config.log:
但是,路径上存在 x265.pc 文件。它的内容是:
并且 x265.h 也在包含路径中。
我跑
它还发现 x265:
现在,我不知道为什么它不起作用。为什么 pkg-config 仍然找不到 x265?
nginx - 我不能在 nginx 中将 libx265 或 hevc 与 ffmpeg 一起使用
exec_push /usr/bin/ffmpeg -re -i rtmp://10.254.20.186:1935/$app/$name ar 44100 -vcodec libx264 -g 25 -f flv rtmp://10.254.20.186/live/$name_hi;
我可以在我的 nginx 服务器中使用此代码。这是代码正在运行,但在编写 libx264 而不是 libx265 时不运行。有趣的是,我可以在我的 linux 计算机上毫无问题地运行以下命令。
ffmpeg -i input.mp4 -c:v libx264 -crf 28 -c:a aac -b:a 128k output.mp4
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -c:a aac -b:a 128k output.mp4
ffmpeg -i input.mp4 -c:v hevc -crf 28 -c:a aac -b:a 128k output264tt.mp4
ffmpeg -i input.mp4 -c:v h264 -crf 28 -c:a aac -b:a 128k output264tt.mp4
ffmpeg - 使用 ffmpeg 和 vaapi 对 HEVC 4K HDR 进行转码
我正在尝试为我的 LG OLED 电视使用 ffmpeg 和 VAAPI 硬件加速将 4K HEVC HDR 视频转码为较低的比特率。
我使用以下文件: 视频
使用以下命令:
但是这个文件在我的电视上没有被识别为 HDR。
使用 libx265 编码器(当然速度要慢得多)时,它可以正常工作:
在比较两个文件的 mediainfo 输出时,我可以看到没有为视频轨道设置以下属性:
- 颜色范围
- 原色
- 传输特性
vaapi 编码的媒体信息:
libx265 编码的媒体信息:
我怀疑颜色范围、颜色原色和传输特性对于使文件被我的电视识别为 HDR 是必要的。如何将这些属性添加到 VAAPI 编码文件中?
编辑:这个补丁解决了这个问题: 补丁
instagram - Instagram 视频中的 HEVC (x265) 编码?
Instagram 是否使用 x265 作为编码格式来进一步压缩和重新格式化上传的移动设备视频?
我尝试对下载的视频进行 ffprobe(在嗅探 https 流量并从 GET 正文获取 url 之后),但结果是 x264。不确定他们是否使用 x265 作为编码格式。在这方面有任何帮助,如果不是 instagram,那么任何其他视频流媒体社交网站都在做同样的事情?
python - 如何使用 Python 捕获 x265.exe 的实时命令行输出?
我想为 x265.exe 编写一个 GUI,它提供了更好(更人性化)的实时进度。
这是我用来捕获子进程输出的代码:
它与“ping”完美结合。
但是,当我切换到“x265”命令时,事情就变成了有线。
例如,如果我在前面的代码中将字符串变量替换'cmd'
为"x265 --y4m --crf 21 --output output.hevc input.y4m"
。理论上,它应该按时间顺序在行中给出以下输出:
但事实是,中间部分表示实时进度的那些输出块不会被捕获到它更新的每一个特定的部分。popen.stdout.readline()
命令将被阻止,直到进度达到 100%,然后完全输出。显然这不是我想要的。
(↓我的意思是这部分)
谁能帮我弄清楚发生了什么以及如何解决它以实现我的目标?
非常感谢。
opencv - FFMPEG x264 (fourcc=0x21) 编解码器不适用于 OpenCV
我试图在 OpenCV 3.2 上使用 mp4 格式编码(fourcc=0x21)但没有成功。可能我的 Ubuntu 18.04 设置有问题,但目前我没有办法解决它。首先,我重新编译了支持 x264 的 FFMPEG。然后,重新编译 OpenCV(contrib 和 OPENCV_ENABLE_NONFREE=ON,WITH_FFMPEG=ON)。它仍然无法正常工作。
我不能使用与 0x21 不同的fourcc。我的意思是..我不能使用另一个编解码器。
例子:
但是,这工作正常(其他fourcc,编解码器):
OpenCV 编译支持 FFMPEG(3.2 版),cmake 配置:
支持 x264 的 FFMPEG 构建:
FFMPEG x264 简单转换测试有效:
android - 无法构建 GStreamer 管道;Android中没有元素x265enc
我正在尝试在使用 GStreamer 的 android 应用程序中使用 x265enc 编码器实现 H265。我已经构建了在使用终端和 gst-launch-1.0 和 videotestsrc 时工作的管道。但是,当尝试在 android 中执行管道时,它不起作用并给出错误 gst_error_factory_make: no such element factory "x265enc"!由于缺少 x265enc 元素,无法构建管道。
我已经在计算机上安装了 plugins-bad(包含 x265enc),它位于 android.mk 文件中。当我查看 plugins.mk 文件时,我没有看到任何地方提到了 x265(提到了 x264 并且 x264enc 有效)。这是一个问题吗?有没有另一种方法来安装 x265enc 以便 android 可以识别它?
bash - 在 Cygwin 上为 ffmpeg 安装 x265 的 cmake - 可执行位置不同于其他编解码器
TL;DR(预期与真实)
对于 Cygwin 的构建ffmpeg
,我正在安装x265
,在我看来,可执行文件最终出现在错误的位置。我将展示一些基本的目录结构,然后展示安装tree
前后的预期输出和真实输出cmake
。对于我认为这很重要的目录,我将显示安装前后的输出cmake
。
我的问题有两个部分。我使用了以下cmake
和make
命令,
结果如下,我的真实与预期,并且有一个更详细、更明确、希望更清晰的文件,其中包含pastebin.com/86wHrtxR上的信息。现在,对于我的两部分问题:
如何更改我的
cmake
命令,以便我的x265.exe
文件以$HOME/programs/ffmpeg/bin
正确的链接结束,而不是$HOME/programs/ffmpeg/ffmpeg_build/bin
?构建/链接器/任何东西会为
ffmpeg
构建解决问题吗?
不管第2题的答案,我都想知道第1题的答案。我以前没有用过flags cmake
,-DVAR=var
我想借此机会学习一下。
结果:
用双大括号括起来的东西是{{ expected }}
.
双尖括号包围的东西是<< real >>
,即安装完成后存在。
如果实际匹配预期,并且文件/目录是新的,我用双括号括起来,即双圆括号。(( match ))
如果某些东西不是新的(因此前后相同),我没有标记它。
有关构建目录结构的其他可能有用的信息。
对于接下来的这个,ffmpeg_sources
dir,我展示了被双括号包围的 after(既是预期的,也是真实的/存在的),即双圆括号,(( <after> ))
.
现在,了解更多详情
我在做什么
我正在开发ffmpeg
. 我正在关注koohiimaster 的旧指南(已存档)。那个指南说,
[W]e 不针对 windows 进行交叉编译;我们正在为 Cygwin 编译。
这个 2014 指南没有我想要的所有编解码器 - 我想要尽可能完整的构建 - 所以我也一直在参考这个 ffmpeg-for-Ubuntu 指南(已存档),我希望它保持最新-日期。这是koohiimaster提到的。
此外,作为检查我是否获得了我想要的所有编解码器的一种方式,我一直在查看SuperUser 的这个 FFmpeg for Windows 指南
我将在下面给出我的步骤的基础知识。更多详细信息以及所有输出位于pastebin.com/suL1nU6Z。
查看构建的目录结构
获取源。请注意,我必须apt-cyg install mercurial
,虽然(在我的 Cygwin 根目录中使用我的 Cygwin 设置 GUI/EXE,即C:\cygwin64\setup-x86_64.exe
),我也可以这样做/setup-x86_64.exe install -q -P mercurial
。
运行cmake
和make
命令
make install
让我担心的是输出的最后一部分(实际上是最后一行) 。这是整个输出 - 它不是很长。
正如TL;DR部分中所讨论的,我希望x265.exe
看到
home/me/programs/ffmpeg/bin/x265.exe
而不是输出最后一行给出的路径,
/home/me/programs/ffmpeg/ffmpeg_build/bin/x265.exe
ffmpeg
这让我特别担心,因为我的指令告诉我运行的安装命令的第一部分是
... and on it goes ...
在我看来,.configure
脚本ffmpeg
找不到x265
可执行文件,因为它不在bindir
.
我将重复我之前的两部分问题:
- 如何更改我的
cmake
命令,以便我的x265.exe
文件以$HOME/programs/ffmpeg/bin
正确的链接结束,而不是$HOME/programs/ffmpeg/ffmpeg_build/bin
?
我在这里寻找的是类似于's中的--bindir
标志的东西。make
./confiure
- 构建/链接器/任何东西会为
ffmpeg
构建解决问题吗?
不管第2题的答案,我都想知道第1题的答案。我以前没有用过flags cmake
,-DVAR=var
我想借此机会学习一下。
我看过的地方和尝试过的东西
我首先从man
page 和--help
for开始cmake
。那太可怕了。我希望我能在这些东西周围找到一些有用的CMAKE_INSTALL_PREFIX
东西,但我不知道该怎么做。
我尝试grep
过cmake --help-full
(在我搜索的任何内容之前和之后都有 50 行),但被复杂性绊倒了。我以前只使用过基本cmake
的东西,而且我迷失了很多。
即使有--help
,我也不知道是否需要查看 、help-manual
、help-command
、help-module
、help-policy
或help-variable
其他东西。
在我看来,在阅读中,“二进制目录”是“构建”的顶部,而我认为这将是名为的目录bin
......我不知道该人打算使用什么东西创建包而不是由我尝试从命令行制作/构建包。
我浏览了似乎是cmake
wiki 的有用变量页面(已归档)以及cmake.org 上的这个线程(已归档),其中,连同这个 SO 源和这个和这个以及这个和这个SO 源,似乎建议使用该CMAKE_RUNTIME_OUTPUT_DIRECTORY
变量(因为该EXECUTABLE_OUTPUT-DIRECTORY
变量已被它取代)。顺便说一句,我不知道包的创建者和包的消费者应该使用哪些东西——消费者就是我。我试过了
并且已经考虑了五十个左右的其他 -DVAR 变量,但是我尝试过的任何一个,我仍然得到相同的结果。我仍然在似乎错误的地方获得可执行文件。
系统详情
ffmpeg - 将 Handbrake 选项转换为 FFMPEG 命令
我想将一堆视频从 x264 转换为 x265,但我需要在终端中使用 ffmpeg,因为它是远程服务器。这些是我的手刹选项(列出的项目打勾):
摘要选项卡
- 网页优化
- 对齐 A/V 开始
尺寸选项卡 未更改
过滤器选项卡
- 锐化 - LapSharp,预设:中
视频标签
视频编解码器 - H.265 (x265)
帧率 (FPS) - 30 - 峰值帧率
质量 - 恒定质量 - 28
编码器预设 - 中
编码器调整 - 无
编码器配置文件 - 自动
音频选项卡
- 音轨 - AAC,比特率:128
字幕选项卡-无字幕(如果存在则删除)
这是到目前为止我设法编译的 ffmpeg 命令:
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -c:a aac -b:a 128k -max_muxing_queue_size 400 -movflags +faststart output.mp4
我有以下两个问题:
- 提供的 ffmpeg 命令是否列出了除峰值帧率、锐化过滤器和删除字幕之外的所有选项?我如何合并这三个?
- 有点不相关,但是否
-max_muxing_queue_size 400
会对文件大小或视频质量产生负面影响?我只包含这个是因为我过去遇到过编码错误。
谢谢你。
我的手刹日志带有上述选项,如果有帮助的话:
python - 如何让 Django 扫描所有目录,包括不在静态文件目录中的目录以搜索媒体文件
我正在尝试构建一个以Django为后端的本地视频流 Web 应用程序。我不希望在线托管应用程序,它总是会保留在本地主机中。现在我面临的问题是 Django 只检测静态文件目录中的视频文件。但是我不能将所有视频都放在静态文件目录下,因此并非所有文件都可以放在静态文件目录中(最好我不希望任何视频文件在其中)。
抱歉,如果我很笨,但是如何让 Django扫描我的整个系统以查找媒体文件(或者最好只扫描我提供给它的目录,不一定来自该 Web 应用程序的前端)而不将视频文件放在静态目录中?如果不可能,那么我应该如何构建这样的应用程序?
而且我还注意到 HTML 中的视频标签默认无法播放 x265 .mkv 视频,有没有办法让它们播放它,或者我应该单独使用其他格式,如 .mp4 吗?
提前致谢。