问题标签 [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.
c - 如何使用 libavcodec/x264 对 h.264 进行编码?
我正在尝试使用 libavcodec/libavformat 对视频进行编码。音频效果很好,但是当我尝试对视频进行编码时,出现以下错误:
使用命令行 ffmpeg 很容易修复,但我正在尝试在 C 中执行此操作。我的选项是
但 avcodec_open() 失败。
我还需要设置哪些其他值才能使 x264 满意?
.net - .NET 中是否有一组适用于 FFMpeg、libavutil、libavformat 和 libavcodec 的有效 P/Invoke 声明?
我目前正在寻找从 .NET 访问 libavutil、libavformat 和 libavcodec(FFMpeg 的所有部分)。
目前,我从每天晚上为 Windows 32 位执行的共享 FFMpeg 包的自动构建中获取库。
我也在使用ffmpeg-sharp 项目中的代码。在那个项目中,我删除了一些未编译的类(它们是包装类而不是 P/Invoke 声明)。
代码编译得很好,但我遇到了一些问题。
首先,av*.dll 的构建似乎使用了cdecl 调用约定PInvokeStackImbalanceException
,因为我在尝试调用时收到了一些av_open_input_file
。这很容易改变以使其正常工作。该AVFormatContext
结构已填充。
之后,我想调用av_find_stream_info
以获取有关文件中流的信息。但是,当使用AVFormatContext
从调用中检索到的 to调用它时av_open_input_file
,AccessViolationException
会抛出一个表明我正在尝试从受保护的内存中读取或写入的信息。
有没有人使用 P/Invoke 通过 P/Invoke 访问 libavutil、libavformat 和 libavcodec dll 库并让它工作?
我应该提到,使用 FFMpeg 的命令行版本虽然是一种解决方案,但在这种情况下并不是一个可行的解决方案,需要通过库进行访问。这样做的原因是我不得不过多地敲打磁盘来做我需要做的事情(我必须对一些非常高清的视频进行逐帧分析)并且我想避免磁盘越多越好。
c - ffmpeg(libavcodec)警告:编码帧太大
我正在尝试使用 libavcodec (ffmpeg) 将原始像素数据编码为 mp4 格式。一切都很顺利,我得到了质量不错的 .avi 文件,但有时编解码器会发出“编码帧太大”的警告。当它这样做时,某些帧的一部分(通常是帧的底部)看起来会乱码或全部混淆。任何人都可以告诉我何时发出此警告。以下是我用于编码器的设置:
问候,
c++ - 有谁知道免费的 H263 Plus 解码器编解码器
我正在开发音频/视频应用程序并寻找要在项目中使用的 H263Plus(不是 H263)解码器(基于 C++)
问候, Chuks
c++ - libavcodec,如何对不同帧率的视频进行转码?
我正在通过 v4l 从相机中获取视频帧,我需要将它们转码为 mpeg4 格式,以便通过 RTP 连续流式传输它们。
一切实际上都“有效”,但在重新编码时我没有做到:输入流产生 15fps,而输出为 25fps,并且每个输入帧都转换为一个视频对象序列(我通过简单的检查验证了这一点在输出比特流上)。我猜接收器正在正确解析 mpeg4 比特流,但 RTP 打包在某种程度上是错误的。我应该如何将编码的比特流拆分为一个或多个 AVPacket ?也许我错过了明显的东西,我只需要寻找 B/P 帧标记,但我认为我没有正确使用编码 API。
这是我的代码摘录,它基于可用的 ffmpeg 示例:
c++ - 带有 QT 内存泄漏的 FFMPEG
让我从一个代码片段开始:
我正在做的是对帧中的数据进行编码并将数据放入指向 QByteArray 的缓冲区中。如果我注释掉 avcodec_encode_video 行,我的内存泄漏就会消失。unownedPointer() 看起来像这样:
其中 this->frame 是一个 AVFrame *,而 this->img 是一个 QImage。
在大约 30fps 的编码速率下,我得到大约 50MB/秒的内存泄漏。所以我不确定问题可能是什么。似乎 avcodec_encode_video() 正在复制内存并且从不释放它或其他东西。有任何想法吗?
如果 avcodec_encode_video 将我的 RGB24 数据转换为 YUV420P,它会修改 frame.unownedPointer() 指向的数据吗?
c++ - 使用 ffmpeg 进行 Wma 解码
我是 ffmpeg 的新手,我尝试使用 api-example.c 解码 wma 文件。但是,当我运行该程序时,它给了我一个错误说
“frame_len 溢出”。有谁知道如何解决这个错误?
这是我的代码:
我已经坚持了很长时间。请帮我。有人知道我的代码有什么问题吗?
谢谢,
伊扎克
ffmpeg - ffmpeg 没有找到 vcodec libx264
我已经安装了最新的 ffmpeg,但它似乎无法找到视频编解码器。我是否需要完全删除 ffmpeg 并重新运行./configure
以使 ffmpeg 找到视频编解码器?
这是我当前的配置:
FFmpeg version git-f61cbc2, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 18 2011 10:59:49 with gcc 4.0.1 (Apple Inc. build 5465)
configuration: --enable-libmp3lame --enable-shared --disable-mmx --arch=x86_64
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.94. 0 / 52.94. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
或者,我可以重新运行 make 命令来包含库吗?
这是我的转码片段:
ffmpeg -i ~/Desktop/watercarts.mov -vcodec libx264 -b 250k -bt 50k -acodec libfaac -ab 56k -ac 2 -s 480x320 ~/Desktop/watercartsipod.mp4
和错误:
Unknown encoder 'libx264'
先感谢您。
visual-c++ - 视频文件的编码和解码之间的主要区别
主要区别是什么?假设我有一个 .flv 格式的视频,我想使用 avcodec.dll 将其转换为 .h264 格式。我会对其进行编码还是解码?我真的很困惑。任何明确的答案将不胜感激。
ffmpeg - 通过ffmpeg使用x264需要什么参数?
我有一个 AVI 文件,我先将其解码为 Raw 格式,现在我想将其编码为 .h264 格式。我正在使用 libavcodec.dll 和 libavformat.dll。关键是当我尝试从 avcodec_open(AVCodecContext,AVCodec) 打开编解码器时它没有打开。我是否缺少一些我需要为 lib x264 执行此方法指定的参数?任何帮助将不胜感激。谢谢