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

ffmpeg - 使用 x264 编码文件播放失真的 vlc

我使用 ffmpeg 从我的网络摄像头捕获了 rgb 格式的原始视频:

这个原始视频文件在 mplayer 中可以正常播放。

我使用 x264 编码这个文件:

但是,当我尝试使用 vlc 播放 webcam.mkv 时,它是一个交错的、扭曲的图像。

我不知道我做错了什么。

0 投票
1 回答
741 浏览

iphone - 加速 x264 编码

我正在使用 x264 对从 iphone 相机捕获的原始数据进行编码。但编码速度很慢。谁能帮我加快编码速度。

我使用以下设置来构建 x264 库:

//对于armv6

CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc ./configure --host=arm-apple-darwin --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3 .sdk --prefix='dist' --extra-cflags='-arch armv6' --extra-ldflags=-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib /system/ --extra-ldflags='-arch armv6' --enable-pic --disable-asm

//对于armv7

CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc ./configure --host=arm-apple-darwin --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3 .sdk --prefix='dist' --extra-cflags='-arch armv7' --extra-ldflags=-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib /system/ --extra-ldflags='-arch armv7' --enable-pic

我正在使用这样的默认预设:

并设置几个参数:

0 投票
1 回答
767 浏览

android - Android 上的 GStreamer x264enc 和 SIGSEGV

我正在尝试使用 GStreamer-java,它是 Android 上的 h.264 编码器 (x264enc)。

现在,我尝试对来自测试视频源的原始视频进行编码(将其is-live属性设置为TRUE),当数据开始流入 x264enc 元素时,我在 libx264.so 中获得 SIGSEGV 并且我的应用程序崩溃。看起来代码正在取消引用 NULL... 确切的错误位置在文件“gstreamer_ndk_bundle/x264/encoder/analyze.c”第 963 行中。就是这一行:

我的设备的 CPU 是 Cortex 8,它具有 NEON 功能...

我试图将所有h结构字段打印到文件中,并且没有未初始化的字段。

来自 LogCat 的 Android 调试信息:这里

我的问题:

  1. 我怎么知道是什么在抛出 SIGSEGV,因为这行代码似乎没问题?
  2. 这是 ARM CPU 上 x264 编码器的已知错误或预期行为,还是我缺少一些编码器配置?
  3. 我注意到如果我将编码器的属性分析设置为0x3:0x113我在网上找到的一些随机值)我没有得到 SIGSEGV,编码器似乎工作,但我在管道中得到错误:数据流错误。我可以将分析设置为有意义的值吗?

更新

我在 x264_mb_analysis_intra() 函数中运行之前以及在它中断的行之前对所有重要的“h”字段进行了 fprintf 编辑,猜测它可能会有所帮助: http://pastebin.com/sAfX239j

0 投票
2 回答
831 浏览

ffmpeg - 是否可以使用一个命令将一个 yuv 文件编码为 3 个具有不同比特率的 h.264 文件?

我有一个 YUV 文件。我需要将其编码为 H.264,但使用三种不同的比特率。是否可以使用一个命令来完成,因此不需要多次处理 yuv 文件?

这是我现在所做的:

是否可以在一个命令中完成它以使其更快?YUV 文件可能很大,所以我不想连续提取三次。并且所有三个编码过程都使用相同的输入 YUV 文件,所以我想这应该是可能的。

0 投票
1 回答
615 浏览

assembly - 我应该在存在 ASM SSSE3 代码的情况下使用 -mssse3 进行编译吗?

我有一个关于在 GCC 上编译 x264 的问题。

x264 具有处理 SSE3 和 SSSE3 等指令集的汇编代码,并且默认情况下在 makefile 中禁用自动矢量化。

我是否应该使用 -mssse3 标志编译它,或者这实际上会导致性能损失?

-mssse3 是否暗示 -msse3 还是 SSE3 与 SSSE3 分开?

0 投票
3 回答
1620 浏览

latency - x264 线程延迟

我想知道为什么 x264 中的无切片线程(http://akuvian.org/src/x264/sliceless_threads.txt)会导致延迟?例如,如果我有 2 个线程,则第一个线程编码一帧,第二个线程编码一帧。在某些情况下,秒必须等待第一个。但它们可以并行编码。

所以两个线程应该比一个线程快,对吧?

0 投票
1 回答
41531 浏览

android - ffmpeg 10.04 找不到编解码器参数

执行命令时出现错误 ffmpeg -i /path/to/video.mp4

0 投票
1 回答
5612 浏览

c - 无法将 libavformat/ffmpeg 与 x264 和 RTP 同步

我一直在开发一些流媒体软件,这些软件使用 H.264 从各种摄像机和网络上获取实时信息。为了实现这一点,我直接使用 x264 编码器(使用“zerolatency”预设)并提供 NAL,因为它们可用于 libavformat 以打包到 RTP(最终是 RTSP)中。理想情况下,此应用程序应尽可能实时。在大多数情况下,这一直运作良好。

然而不幸的是,存在某种同步问题:客户端上的任何视频播放似乎都会显示一些流畅的帧,然后是短暂的停顿,然后是更多的帧;重复。此外,似乎有大约 4 秒的延迟。我尝试过的每个视频播放器都会发生这种情况:Totem、VLC 和基本的 gstreamer 管道。

我把它归结为一个有点小的测试用例:

此测试显示白色背景上的黑色线条应该平滑地向左移动。它是为 ffmpeg 0.6.5 编写的,但该问题可以在0.80.10上重现(从我目前测试的结果来看)。我在错误处理方面采取了一些捷径,以使这个示例尽可能短,同时仍然显示问题,所以请原谅一些讨厌的代码。我还应该注意,虽然这里没有使用 SDP,但我已经尝试使用它并获得类似的结果。测试可以编译:

可以直接用gtreamer玩:

您应该立即注意到口吃。我在 Internet 上看到的一个常见“修复”是将 sync=false 添加到管道中:

这会导致播放流畅(并且接近实时),但不是解决方案,仅适用于 gstreamer。我想从源头上解决问题。我已经能够使用原始 ffmpeg 以几乎相同的参数进行流式传输,并且没有任何问题:

很明显我做错了什么。但它是什么?

0 投票
1 回答
167 浏览

callback - 何时调用 `nalu_process` 有什么保证(如果有的话)?

特别是,可以在与其关联的x264_encoder_encode每个nalu_process回调返回之前调用 return 吗?#x264 中有人建议它依赖于设置;我在这里谈论的是“零延迟”预设。

如果上述问题的答案是肯定的,那么它在经验上有多普遍?

0 投票
2 回答
557 浏览

python - x264 多次通过指定临时文件的位置?

所以,我的情况是这样的。我有三个 x264 命令,我想并行运行 3 遍:

然后我想并行运行第二遍:

第三关也是如此。

问题是,因为我同时运行三个带有 -p 选项的 x264 命令(使用多处理),它们都试图使用相同的临时文件来保存第一/第二遍的结果。

有没有办法为每个 x264 命令指定使用不同的临时文件?