问题标签 [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 回答
2725 浏览

api - FFMPEG API(使用特定格式编译)

我正在尝试编译 FFMPEG 以支持单一视频类型 (*.mp4)。

当我为所有人编译时,我一切正常,但是当我只使用一种格式时,我不希望额外的开销。

这是我现在编译的标志(不适用于 MP4)。我确信我需要专门启用其他编解码器/解码器,但我很难找到它们。

编译器指令显示以下构建标志:

我只是不太了解视频标准,无法确切知道要打开哪些编解码器/编码器/等。

0 投票
1 回答
1955 浏览

ffmpeg - avcodec_find_decoder(CODEC_ID_MPEG2TS) 始终为 NULL

我想解码传入的 MPEG2 传输流,然后将其编码为 h264。h264 编解码器一切正常,但问题是 libavcodec 似乎无法识别 MPEG2-Transportstream。我基本上是在模仿官方的例子:

http://ffmpeg.org/doxygen/trunk/decoding__encoding_8c-source.html

ptrCodec 始终为 NULL。有人可以帮我吗?

0 投票
1 回答
1276 浏览

objective-c - 在 iPhone 上使用 FFMPeg 解码 WMA

我正在使用此功能解码音频,但没有声音:

数据下载成功,但是我不知道从哪里开始,因为根本没有声音。

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 投票
1 回答
786 浏览

android - Android,共享库依赖

  1. 我正在实现一个在 Android 上使用 LibAv/ffmpeg 的应用程序
  2. 我正在使用 JNI 与本机代码进行交互
  3. 我的“共享库”正在使用 libswscale.so、libavutil.so、libavformat.so、libavdevice.so、libavcore.so 和 libavcodec.so。
  4. 所有的“共享库”都经过验证打包到 APK 文件的同一目录中
  5. 我正在设备上调试(没有模拟器)
  6. Runtime.loadLibrary($MY_LIB_NAME) 触发 UnsatisfiedLinkError 异常
  7. 直接运行 'System.loadLibrary("swscale")' 也会导致 UnsatisfiedLinkError 异常

我的猜测是 libav*.so 依赖于应该添加到 APK 的其他库,但是,我不确定如何检测这些。有什么工具可以检测依赖的共享库吗?(窗口 ddepends 等效)?

任何帮助将不胜感激。

~纳达夫

0 投票
1 回答
157274 浏览

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

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

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

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

0 投票
0 回答
698 浏览

c++ - 下采样:可听点击

在 C++ 程序中,我试图对 8192 个音频样本(-32768...32767)的块进行下采样。原始采样率为 48kHz,我想要 16kHz。

如果原始样本数为 8192,则比率 16/48 应产生大约 2731 个样本。

我尝试为此使用 libav,对 8192 个输入样本的每个块使用此代码:

然而,这似乎在一定程度上起作用 - 最后 30 个左右的样本在 2731 个样本的每个输出块中都是零,所以在这里总是可以听到“咔哒声”

我在这里做错了什么?

非常感谢您的帮助!

0 投票
1 回答
2086 浏览

c++ - 使用 libav 库打包视频

我正在尝试制作一个使用 libav 库的视频流服务器和客户端应用程序。

我希望服务器做的是简单地逐帧读取视频并将帧放入数据包中,然后将它们发送到客户端。当然,客户端必须能够从数据包中读取帧。

我怎样才能做到这一点?有没有可用的教程?

我正在使用 Ubuntu 11.04 机器。

0 投票
1 回答
12765 浏览

c++ - 使用 libavcodec 解码音频并使用 libAO 播放?

我使用以下代码片段来解码音频文件(用 MP3、WAV、WMV 测试)。

但是当它播放音频时,它只会发出静态声音并时不时地崩溃。关于我在这里做错了什么的任何提示?

0 投票
3 回答
3704 浏览

c++ - 使用 LibAV 解码 UDP 流:缓冲区大小不足

我正在尝试使用带有 Qt 的 libav 库来解码 h.264 UDP 视频流,但是当我使用 avformat_open_file 时,我收到以下错误消息:

该消息出现大约 10 次,然后尝试失败。我正在尝试同时解码 4 个不同的 UDP 流,每个流的帧速率为 25fps。Wireshark 表示数据包在 3000 到 10000 字节之间。

这是我对 avformat_open_input 的调用:

在进行此调用时,formatContext 为 NULL,并且 udpUrl 的格式为“udp://ipaddress:port”。

如果有人能为我阐明这个问题,将不胜感激!