问题标签 [x264]

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

linux - FFmpeg 截屏录制:使用哪些编解码器?

我一直在尝试使用 FFmpeg 的 X11grab 模块录制截屏视频,到目前为止,它或多或少都运行良好。我知道 A/V 编码是一个复杂的过程,有很多细节,但我正在努力学习。

我想对视频流进行“轻量级”录制,在录制流时尽可能减少系统的压力。我用 pacat 和 sox 分别录制两个音频流。之后,整个内容被过滤、规范化、编码并组合到一个 Matroska 容器中。

现在,我正在让 ffmpeg 记录一个 rawvideo 流以馈送到 x264 的 yuv4 解复用器。我之前尝试过 ffv1 和直接 x264 录制。我的系统无法在我想要的最终流设置上使用 x264 进行实时编码,因此在录制完成后我必须单独重新压缩。我发现 ffv1 给我带来了可怕的丢帧,还有 yuv4,但没那么严重。我怀疑这是由于硬盘驱动器的速度,即使我坐在专门用于保存记录数据的 SATA3 Caviar Black 中。

问题是,我应该查看哪种视频编解码器组合?直接在 x264 中录制并稍后重新压缩为“更好”的 x264?原始视频,然后压缩?我将如何查明我遇到的丢帧等问题?

编辑:这是我目前使用的 ffmpeg 行。

0 投票
3 回答
3150 浏览

android - 如何使用 android 的线程支持编译 ffmpeg 和 x264?

我想编译 x264 和 ffmpeg 并支持 ANDROID .FFmpeg 和 x264 即使在分别启用 enable-pthreads 和 enable-threads 之后也没有使用线程支持进行编译。

config.h 都包含 #define HAVE_THREAD 0 和 #define HAVE_PTHREADS 0

1.如何编译线程支持。2.第二个问题是,当我将 gop 大小从 1 增加到某个其他值时,编码器会为某些后续帧返回 0。这会导致视频播放延迟超过 3 到 5 秒

0 投票
1 回答
760 浏览

video - 'keyint infinite' 是否使用 crf 和 mb-tree 改善整体压缩?

在阅读了内部刷新的作用后,我有点困惑。我正在为 YouTube 编码,YouTube 无论如何都会重新编码视频文件,所以我想“为什么不删除所有这些沉重的 IDR 帧?” 我只想尽可能地压缩我的视频,启用所有可以帮助我获得较小文件大小但仍保持高质量的东西。

我曾经用无损 QP 编码测试过一些东西,但我唯一能做到的就是merange。这是我的 x264 设置的粘贴:Pastebin。

我想在保持视觉无损质量的同时实现最高压缩。(使用大约 10 - 13 和 merange 32 的 crf 值)

谁能给我关于如何超级压缩我的视频的建议(不触及 crf 值!)。我也想知道这是否属实,keyint 无限减少了整体压缩。

0 投票
1 回答
2221 浏览

ffmpeg - 将原始 H264 NALU 流包装到 MP4 等容器中

我有一个应用程序,它使用 x264 x264_encoder_encode 即时发送编码生成的原始 h264 NALU。我通过普通的 TCP 获取它们,所以我不会丢失任何帧。我需要能够使用 Windows 中的硬件加速 (DXVA2) 在客户端中解码这样的流。我一直在努力寻找一种使用 FFMPEG 使其工作的方法。也许尝试 Media Foundation 或 DirectShow 可能更容易,但它们不会采用原始​​ H264。我要么需要:

  1. 更改服务器应用程序的代码以返回 mp4 流。我对x264没有那么有经验。我可以通过调用 x264_encoder_encode 来获取原始 H264,方法是遵循以下问题的答案:如何使用 x264 C API 将一系列图像编码为 H264?我怎样才能从这个转到 MP4 中包装的东西,同时仍然能够实时流式传输它

  2. 我可以在接收器处用 mp4 头文件将其包装起来,然后将其输入到可以使用 DXVA 播放的东西中。我不知道该怎么做

  3. 我可以找到另一种方法来使用带有 FFMPEG 的 DXVA 或其他以原始格式获取它的东西来加速它。

一个重要的限制是我需要能够在显示每个解码帧之前对其进行预处理。任何一步完成解码和显示的解决方案都不适合我

两种解决方案我都可以

0 投票
5 回答
18236 浏览

linux - 即使我已经安装它也找不到 yasm

我遇到了一个奇怪的问题。我试图安装 x264。运行 sudo ./configure --enable-shared 时,它给出:

发现没有汇编器 最低版本是 yasm-0.7.0 如果你真的想不使用 asm 编译,用 --disable-asm 配置。

但是我已经安装了 yasm-0.7.0,为了证明,我运行 yasm --version,它给出了:

* yasm 0.7.0.2066 于 2012 年 5 月 8 日编译。版权所有 (c) 2001-2008 Peter Johnson 和其他 Yasm 开发人员。运行 yasm --license 以获取许可概述和摘要。*

我把yasm安装到/usr/local/yasm,为什么找不到yasm?

0 投票
2 回答
904 浏览

c++ - x264 DirectShow 过滤器的 CLSID

我已经使用Monogram 中的x264 DirectShow 过滤器来解码 h264 avc 视频,我需要在 directshow 中创建 innce 并将过滤器添加到图形中,我从 grapthEdit 检查了它的 CLSID,即“x264”,我想创建实例我们需要该过滤器的 GUID,我不知道如何使用“x264”值创建过滤器实例。

我正在使用带有 vc++ 的 directshow

任何人都可以对此有想法吗?

0 投票
2 回答
2376 浏览

opencv - OpenCV 二进制部署 (Linux)

在研究所,我们在集群上使用 Scientific Linux 5,我需要部署一个使用现代 OpenCV 发行版(2.3.1 或 2.4.0)的应用程序。我在集群上没有 root 权限。

本质上,我如何打包 ffmpeg(希望是 x264)、opencv 的所有动态二进制依赖项,以便我可以 xcopy-deploy 我的应用程序?

我在 Ubuntu 上安装了 OpenCV 2.3.1。如果有一种方法可以可控地加载可执行文件并复制所有动态依赖项,我可以使用它。

谢谢, 瓦迪姆

0 投票
1 回答
3974 浏览

ffmpeg - 如何使用 ffmpeg 重新编码(有限的 x264)

到目前为止,我使用此脚本为我的盒子(电视解码器)重新编码我的 rip:

它适用于我的 ubuntu 和 archlinux 笔记本电脑。但它不在我的桌面上运行fedora。Google 表示 rpmfusion 提供的 x264 软件包不支持 lavf 和 ffms2。而且我无法取消安装它,因为 smplayer(我喜欢的女巫)需要它。

好的,所以我必须编译它。谷歌然后说“你必须构建 ffmpeg, ffms2 tnen x264 确保正确引用标志。” 好吧,没用(ffms2 找不到 LIBAV——即使我告诉我在哪里——而且 x264 没有用 lavf 配置...)

我的问题是:我可以单独使用 ffmpeg 来完成我的脚本所做的事情。我有 ffmpeg 版本 0.8.11、x264 0.116.2048 59cb2eb 和 gcc: 4.6.1 20110804 (Red Hat 4.6.1-7)

编辑:好的,我发现: ffmpeg -i input file -acodec copy -vcodec libx264 -preset veryfast -tune animation [that part I didn't have] output

0 投票
1 回答
6584 浏览

linux - FFmpeg cannot recognize a preset even though it does exist Ubuntu 12.04

I have installed ffmpeg and x264 folloowing the steps in this documentation :http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide

Now I have this line to execute :

I have the presets in the the following directories:

And still getting the same error: File for preset 'normal' not found

What is the problem here?

Extra info - this is what i get when i do ffmpeg -version

0 投票
1 回答
938 浏览

encoding - 如何并行编码多个视频(Debian)

我想在 Linux Debian 中将一些视频文件编码为MP4X264格式。

并行编码多个文件非常重要。例如,我想在双码机上并行编码两个视频,并将其他视频放入队列中。视频完成后,我希望免费核心对队列中的下一个视频进行编码。此外,即使这适用于 x264,我也不知道 MP4。

这里最好的方法是什么?x264 支持并行编码,但我不知道这是多个文件的并行编码还是单个视频的不同版本的并行编码。有没有办法可以将一个编码过程分配给 core1,另一个分配给 core2?

真诚的,沃尔芬