问题标签 [libav]

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

ffmpeg - libav* 解码不正确

使用 libav 保存视频中的帧。

问题是,如果你调用函数 decode 几次,那么第二次然后没有正确处理。

第一次这样的结论(一切正常):

第二(找不到流,但它们是相同的):

你能告诉错误发生在哪里吗?

主文件

视频.cpp

ffmpeg 版本

0 投票
1 回答
1724 浏览

c - 使用 ffmpeg 解码 TCP 流

我正在编写的 Android 应用程序中使用 Ffmpeg 库。我已经编写了代码来打开一个本地文件并使用 avformat_open_input() 对其进行解码。但是我需要使用 Ffmpeg 通过 TCP 读取视频流。我在 Ffmpeg 中发现了一些东西,例如 libavcodec/tcp.h,但我无法确定如何将 TCP 流实际打开到解码器中。

任何建议将不胜感激。

0 投票
1 回答
580 浏览

c++ - 如何在 libav 中使用 PixelFormat 获取像素位数

有没有办法从 PixelFormat 类型的 codecContext.pix_fmt 获取像素的位数?我使用开关手动完成:

但这需要每次 libav 添加或删除某些像素格式时手动更新。或者,如果我需要添加一些之前不支持的像素格式。

PS 我需要它来填充 DirectShow 过滤器的 CMediaType,因此 bits_per_raw_sample 不合适,因为据我所知,它用于内部 libav 使用。

0 投票
1 回答
1626 浏览

c++ - 如何使用 Libav 在 Windows 上捕获相机设备?

有什么方法可以使用 Libav 在 Windows 平台上捕获与 DirectShow 一样多的相机类型的帧?我需要在不使用 DirectShow 过滤器的情况下捕获相机输出,并且我希望我的应用程序可以与许多相机设备类型一起使用。

我在网上搜索了 libav 的这个功能,发现可以通过 libav 使用特殊的输入格式“vfwcap”来完成。类似的东西(不确定代码的正确性 - 我自己写的):

那么另一个问题是:Libav 支持多少设备?我所发现的关于在 Windows 上使用 libav 捕获相机输出的所有信息都是建议为此目的使用 DirectShow,因为 libav 支持的设备太少。也许现在情况已经发生了变化,它确实支持足够的设备在生产应用程序中使用它?

如果这是不可能的.. 好吧,我希望我的问题不会是无用的,并且由不同来源的代码组成的这段代码将帮助对这个主题感兴趣的人,因为在整个互联网上关于它的信息真的太少了。

0 投票
1 回答
914 浏览

c++ - 如何更改 libav 解码帧率?

有什么办法可以改变 libav 解码帧率?libav 结构中有几个变量负责获取帧速率,但据我所知,这些变量仅用于阅读目的(在解码模式下)。其中有:

前两个告诉我帧数,后两个告诉我帧率。但似乎我不能只设置它们,否则可能不会产生适当的效果。

有什么建议么?

0 投票
4 回答
7326 浏览

c - 如何关闭 libavformat 错误消息

默认情况下,libavformat 将错误消息写入,例如stderr

Estimating duration from bitrate, this may be inaccurate

我怎样才能关闭它?或者更好的是,将它传递给我自己整洁的日志记录功能?

编辑:将 stderr 重定向到其他地方是不可接受的,因为我需要它用于其他日志记录目的,我只希望 libavformat 不写入它。

0 投票
1 回答
1470 浏览

installation - cinelerra:加载共享库时出错:libavcodec.so.52 slackware

确实,尝试安装 cinelerra 需要几天的时间,并且不再知道还能做什么 eh 搜索了论坛,我已经向 cinelerra 列表发送了电子邮件,但仍然无法解决任何问题提前谢谢

只是对使用cinelerra感兴趣 我有slackware 13.37 下载TXZ

说它安装正确放:

我收到以下错误:

0 投票
2 回答
3873 浏览

ffmpeg - 如何调试为什么 avconv 停止?

我正在使用 avconv 将 .mov 文件转换为 .mpg 文件。我的 php 应用程序正在运行的命令如下:

avconv -y -i '$finalvideo' -target ntsc-dvd -aspect 4:3 '$mpgvideo' > $logs

我能够毫无问题地将小的 .mov 文件转换为 .mpg。但是,我无法转换超过十分钟或十五分钟的视频。日志文件完全为空。当我直接运行命令时,无论我选择哪个视频,帧都会在 34000 左右停止。

cpu 显示此进程的使用率为 97%,但是,什么也没有发生。

操作系统 Ubuntu 10~

我如何才能收集有关此停滞过程的更多信息?

这是冻结的输出

哦有趣。我使用了-loglevel debug -debug。我看到了这个信息

直到我终于收到这条消息

我已经用 libav http://bugzilla.libav.org/show_bug.cgi?id=67发布了我的错误

谢谢你的帮助。

0 投票
0 回答
4261 浏览

android - 为 Android 构建的 Libav

有没有人成功为 Android 编译 Libav。我目前正在寻找文档。

谢谢!

0 投票
1 回答
815 浏览

c - 如何将 rgb 图像数组从 sws_scale 转换为 DIB(在内存位图中)

我正在从流中解码视频帧,sws_scale 为我提供了一个解码后的 RGB 图像数据 (PIX_FMT_RGB24) 的缓冲区。我有一个需要输入为 DIB 的现有前端应用程序。所以我需要知道如何将此缓冲区转换为 DIB?

据我了解,Windows 上的 DIB 是 BGR,从下到上,需要一个标题。我希望这个问题已经得到解决,而不是手动执行。我也想知道也许 sws_scale 可以在本地做到这一点。