问题标签 [libavcodec]

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

ffmpeg - 如何解决在为 android 构建 ffmpeg-with-libx264-enabled 时找不到 libx264?

我正在尝试构建从 git 下载的 android-ffmpeg-x264。链接https://github.com/halfninja/android-ffmpeg-x264

运行 ./config_make_everything.sh 后,我收到以下错误

错误:找不到 libx264

如果您认为 configure 出错了,请确保您使用的是 Git 的最新版本。如果最新版本失败,请将问题报告给 ffmpeg-user@ffmpeg.org 邮件列表或 irc.freenode.net 上的 IRC #ffmpeg。包括由 configure 生成的日志文件“config.log”,因为这将有助于解决问题。

config.log 包含

1.我正在使用 fedora 构建 ffmpeg 和 x264 2.NDK r7

任何成功构建代码的解决方案?

0 投票
1 回答
1616 浏览

libavcodec - 使用 libavcodec 打开 Live Input 的快速方法

我目前正在使用来自 Hauppauge WinTV950Q 的实时视频输入,它为我提供了实时视频输入。

我正在使用libav*andQt库并C/C++在 Linux 上编程。我使用推荐avcodec_open_input()的打开和处理(转码)输入以在移动设备上使用。我希望能够在我的移动设备上观看电视,并且能够远程切换频道。到目前为止一切正常。

我唯一的问题是打开输入需要 5 到 20 秒。这对于我的用例来说会变慢,我可以接受 1-3 秒之间的延迟。我以前用于第一次测试的 v4l2-API 实际上设法获得 1-3 秒之间的切换时间,但我不能使用它,因为我需要进行一些转码,以便可以在移动设备上使用视频数据。

有没有办法提高avformat_open_input()通话的开放时间?也许在打开输入之前需要设置库中的一些全局变量?

这是相关的代码:

这是输出:

0 投票
2 回答
1346 浏览

opengl - CL/GL-Interop 的 OpenGL 纹理格式类型错误?

我正在使用 CUDA Toolkit 4.0 在 Geforce 330M 上尝试 OpenCL-OpenGL 互操作纹理。

我想捕获一个帧,将该数据用作Image2DOpenCL 内核的输入图像 ( )。内核应该操作数据并将其写入一个Image2DGL,这是一个附加了 OpenGL 纹理的图像对象。基本上它看起来像这样:

我正在像这样初始化纹理:


编辑:我也可以有一种GL_UNSIGNED_INT


然后我创建共享图像 ( Image2DGL):

然后我创建源图像(输入图像):

在每个渲染循环中,我将数据写入srcImgBuffer

另外我正在为内核设置参数:

在我获取和释放 GL 对象之前和之后。测试内核如下所示:

image_channel_data_type可以在内核中读取为浮点数并解释为标准化值。输出图像看起来不正确,我有一张切片图片(逐行),显然是因为错误的数据解释。正如我所提到的,我假设错误在纹理类型的初始化中。我尝试了 GL_FLOAT (因为我将浮点数写入内核中的图像)。

结果:图像作为解码器的 PPM 转储(左),纹理输出分散(右)

左边是PPM解码器的输出,右边是我在输出纹理上得到的。

如果有人真的读到这里:你有关于纹理类型的建议来解决这个问题吗?


编辑:如果我直接将捕获的帧绑定到纹理,则视频播放正常。所以它必须以某种方式与CL-GL接口相关。


0 投票
1 回答
8456 浏览

windows - ffmpeg libx264 AVCodecContext 设置

我正在使用最近的 Windows(2011 年 1 月)ffmpeg 构建并尝试在 H264 中录制视频。使用以下设置在 MPEG4 中录制良好:

只需将 CODEC Id 更改为 H264 就会导致 avcodec_open() 失败 (-1)。我找到了可能的设置列表How to encoding h.264 with libavcodec/x264? . 我试过这些,没有设置 pix_fmt,avcodec_open() 仍然失败,但如果我另外设置 c->pix_fmt = PIX_FMT_YUV420P; 然后我得到一个除以零的异常。

然后我在这里遇到了一些帖子,说我不应该设置任何内容(除了 code_id、codec_type、width、height 可能还有 bit_rate 和 pix_fmt),因为库现在自己选择了最佳设置。我尝试了各种组合,仍然 avcode_open() 失败。

有人对当前的操作或某些设置有什么建议吗?

谢谢。

这是一组 H264 设置,它们给出了我描述的问题:

}

0 投票
2 回答
938 浏览

c - C 函数(fgets、scanf、fread、fwrite、fopen)的未知行为

我目前正处于我的计算机工程高级项目的最终开发和测试阶段。在使用库(Libjpeg、Libbmp、PocketSphinx、Libavcodec、Libavformat、Libavutil)并使用 netbeans 作为 IDE 进行代码(C、Bash)的设计和开发之后。我遇到的问题是,在 Netbeans 中,代码可以完美地编译和链接,并且软件的执行也很好。但是,当我使用 MakeFile 从外部编译和链接代码时,诸如:fopenfreadfwritefgetsfscanf等的函数停止工作......

GCC标志:

LD标志:

同样的未知行为也影响了现在无法打开 HMM 的 PocketSphinx 的性能。

任何启发都非常感谢,因为我的最后一次演讲是下周。

- - - - - 更新 - - - - -

这是我实际的 MakeFile

编译时错误:无运行时错误:无

我首先注意到这部分代码中的问题。

使用 MakeFile 编译时,我总是收到“读取配置文件时出错”,但是我在 Netbeans 上没有。

程序输入:./macmp2 -c configuration.txt 输出:读取配置文件。

[*] 致命错误:读取配置文件时出错。

正如我所说,代码是我的高级项目,我不能在这里发布。我很确定这个问题与链接器标志有关。程序在第一次迭代时停止。正如我之前所说,代码在使用 Netbeans 编译时有效,但在使用发布的 MakeFile 编译时停止工作。

- - - - - 更新 - - - - -

根据 Jonathan Leffler 的要求,这里是 fopen_safe 和 malloc_safe 的包装器。

fopen_safe 和 malloc_safe 的代码都是由我实现的。

0 投票
1 回答
8298 浏览

c - 使用 LIBAVCODEC 将原始图像缓冲区转换为 JPEG

我有一个从相机捕获的原始图像缓冲区(在内存中),我想将其转换为 JPEG(用于减小大小)。问题是,将这些图像保存为 .pgm 格式会导致我无法承受的巨大文件大小,这是由于保存这种大小的大文件所涉及的内存限制和延迟(我正在处理的应用程序中的一个限制) .

我想知道如何使用 LIBAVCODEC 将图像缓冲区压缩/编码为 .jpg 格式?我的图像捕获代码在 C 中。

0 投票
1 回答
157274 浏览

ubuntu - ffmpeg、libav、avconv有什么区别和相似之处?

当我ffmpeg在 Ubuntu 上运行时,它显示:

或者它显示(取决于 Ubuntu 版本):

我在http://libav.org上找到了 avconv 。我只是对他们感到困惑。

0 投票
3 回答
18896 浏览

c++ - 使用 libavformat 读取位于内存中的文件

我目前正在尝试读取从服务器发送的小视频文件

为了使用 libavformat 读取文件,您应该调用

问题是在这种情况下文件不在磁盘上,而是在内存中。

我目前正在做的是下载文件,使用临时名称将其写入磁盘,然后av_open_input_file使用临时文件名进行调用,这不是一个非常干净的解决方案。

事实上,我想要的是一个类似的功能,av_open_custom(&avFormatContext, &myReadFunction, &mySeekFunction);但我在文档中没有找到任何功能。我想这在技术上是可行的,因为文件名不能帮助库确定它使用的格式。

那么有没有这样的函数,或者 av_open_input_file 的替代方法?

0 投票
1 回答
10435 浏览

c++ - 如何在 libavcodec 中设置解码像素格式?

我使用以下代码通过 libavcodec 解码视频:

代码可以正常工作,但需要将每一帧转换为所需的格式。是否可以在没有 sws_scale 的情况下设置用于解码的像素格式以获得正确的格式?

非常感谢您的回答。

0 投票
0 回答
217 浏览

ffmpeg - 解码时的FFMPEG奇怪

这是我的解码代码:

http://pastebin.ca/2120920

我可以成功解码 H264 视频和一些 AVI。我的问题是它不是很稳定,它不能解码大多数格式但它可以与其他格式一起使用,这是标题损坏还是视频数据中缺少信息的问题?如何使此解码器代码更有效?