问题标签 [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.
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
任何成功构建代码的解决方案?
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()
通话的开放时间?也许在打开输入之前需要设置库中的一些全局变量?
这是相关的代码:
这是输出:
opengl - CL/GL-Interop 的 OpenGL 纹理格式类型错误?
我正在使用 CUDA Toolkit 4.0 在 Geforce 330M 上尝试 OpenCL-OpenGL 互操作纹理。
我想捕获一个帧,将该数据用作Image2D
OpenCL 内核的输入图像 ( )。内核应该操作数据并将其写入一个Image2DGL
,这是一个附加了 OpenGL 纹理的图像对象。基本上它看起来像这样:
我正在像这样初始化纹理:
编辑:我也可以有一种
GL_UNSIGNED_INT
。
然后我创建共享图像 ( Image2DGL
):
然后我创建源图像(输入图像):
在每个渲染循环中,我将数据写入srcImgBuffer
:
另外我正在为内核设置参数:
在我获取和释放 GL 对象之前和之后。测试内核如下所示:
image_channel_data_type
可以在内核中读取为浮点数并解释为标准化值。输出图像看起来不正确,我有一张切片图片(逐行),显然是因为错误的数据解释。正如我所提到的,我假设错误在纹理类型的初始化中。我尝试了 GL_FLOAT (因为我将浮点数写入内核中的图像)。
左边是PPM
解码器的输出,右边是我在输出纹理上得到的。
如果有人真的读到这里:你有关于纹理类型的建议来解决这个问题吗?
编辑:如果我直接将捕获的帧绑定到纹理,则视频播放正常。所以它必须以某种方式与CL-GL接口相关。
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 设置,它们给出了我描述的问题:
}
c - C 函数(fgets、scanf、fread、fwrite、fopen)的未知行为
我目前正处于我的计算机工程高级项目的最终开发和测试阶段。在使用库(Libjpeg、Libbmp、PocketSphinx、Libavcodec、Libavformat、Libavutil)并使用 netbeans 作为 IDE 进行代码(C、Bash)的设计和开发之后。我遇到的问题是,在 Netbeans 中,代码可以完美地编译和链接,并且软件的执行也很好。但是,当我使用 MakeFile 从外部编译和链接代码时,诸如:fopen
、fread
、fwrite
、fgets
、fscanf
等的函数停止工作......
GCC标志:
LD标志:
同样的未知行为也影响了现在无法打开 HMM 的 PocketSphinx 的性能。
任何启发都非常感谢,因为我的最后一次演讲是下周。
- - - - - 更新 - - - - -
这是我实际的 MakeFile
编译时错误:无运行时错误:无
我首先注意到这部分代码中的问题。
使用 MakeFile 编译时,我总是收到“读取配置文件时出错”,但是我在 Netbeans 上没有。
程序输入:./macmp2 -c configuration.txt 输出:读取配置文件。
[*] 致命错误:读取配置文件时出错。
正如我所说,代码是我的高级项目,我不能在这里发布。我很确定这个问题与链接器标志有关。程序在第一次迭代时停止。正如我之前所说,代码在使用 Netbeans 编译时有效,但在使用发布的 MakeFile 编译时停止工作。
- - - - - 更新 - - - - -
根据 Jonathan Leffler 的要求,这里是 fopen_safe 和 malloc_safe 的包装器。
fopen_safe 和 malloc_safe 的代码都是由我实现的。
c - 使用 LIBAVCODEC 将原始图像缓冲区转换为 JPEG
我有一个从相机捕获的原始图像缓冲区(在内存中),我想将其转换为 JPEG(用于减小大小)。问题是,将这些图像保存为 .pgm 格式会导致我无法承受的巨大文件大小,这是由于保存这种大小的大文件所涉及的内存限制和延迟(我正在处理的应用程序中的一个限制) .
我想知道如何使用 LIBAVCODEC 将图像缓冲区压缩/编码为 .jpg 格式?我的图像捕获代码在 C 中。
c++ - 使用 libavformat 读取位于内存中的文件
我目前正在尝试读取从服务器发送的小视频文件
为了使用 libavformat 读取文件,您应该调用
问题是在这种情况下文件不在磁盘上,而是在内存中。
我目前正在做的是下载文件,使用临时名称将其写入磁盘,然后av_open_input_file
使用临时文件名进行调用,这不是一个非常干净的解决方案。
事实上,我想要的是一个类似的功能,av_open_custom(&avFormatContext, &myReadFunction, &mySeekFunction);
但我在文档中没有找到任何功能。我想这在技术上是可行的,因为文件名不能帮助库确定它使用的格式。
那么有没有这样的函数,或者 av_open_input_file 的替代方法?
c++ - 如何在 libavcodec 中设置解码像素格式?
我使用以下代码通过 libavcodec 解码视频:
代码可以正常工作,但需要将每一帧转换为所需的格式。是否可以在没有 sws_scale 的情况下设置用于解码的像素格式以获得正确的格式?
非常感谢您的回答。
ffmpeg - 解码时的FFMPEG奇怪
这是我的解码代码:
我可以成功解码 H264 视频和一些 AVI。我的问题是它不是很稳定,它不能解码大多数格式但它可以与其他格式一起使用,这是标题损坏还是视频数据中缺少信息的问题?如何使此解码器代码更有效?