问题标签 [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.
api - FFMPEG API(使用特定格式编译)
我正在尝试编译 FFMPEG 以支持单一视频类型 (*.mp4)。
当我为所有人编译时,我一切正常,但是当我只使用一种格式时,我不希望额外的开销。
这是我现在编译的标志(不适用于 MP4)。我确信我需要专门启用其他编解码器/解码器,但我很难找到它们。
编译器指令显示以下构建标志:
我只是不太了解视频标准,无法确切知道要打开哪些编解码器/编码器/等。
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。有人可以帮我吗?
objective-c - 在 iPhone 上使用 FFMPeg 解码 WMA
我正在使用此功能解码音频,但没有声音:
数据下载成功,但是我不知道从哪里开始,因为根本没有声音。
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()
通话的开放时间?也许在打开输入之前需要设置库中的一些全局变量?
这是相关的代码:
这是输出:
android - Android,共享库依赖
- 我正在实现一个在 Android 上使用 LibAv/ffmpeg 的应用程序
- 我正在使用 JNI 与本机代码进行交互
- 我的“共享库”正在使用 libswscale.so、libavutil.so、libavformat.so、libavdevice.so、libavcore.so 和 libavcodec.so。
- 所有的“共享库”都经过验证打包到 APK 文件的同一目录中
- 我正在设备上调试(没有模拟器)
- Runtime.loadLibrary($MY_LIB_NAME) 触发 UnsatisfiedLinkError 异常
- 直接运行 'System.loadLibrary("swscale")' 也会导致 UnsatisfiedLinkError 异常
我的猜测是 libav*.so 依赖于应该添加到 APK 的其他库,但是,我不确定如何检测这些。有什么工具可以检测依赖的共享库吗?(窗口 ddepends 等效)?
任何帮助将不胜感激。
~纳达夫
c++ - 下采样:可听点击
在 C++ 程序中,我试图对 8192 个音频样本(-32768...32767)的块进行下采样。原始采样率为 48kHz,我想要 16kHz。
如果原始样本数为 8192,则比率 16/48 应产生大约 2731 个样本。
我尝试为此使用 libav,对 8192 个输入样本的每个块使用此代码:
然而,这似乎在一定程度上起作用 - 最后 30 个左右的样本在 2731 个样本的每个输出块中都是零,所以在这里总是可以听到“咔哒声”
我在这里做错了什么?
非常感谢您的帮助!
c++ - 使用 libav 库打包视频
我正在尝试制作一个使用 libav 库的视频流服务器和客户端应用程序。
我希望服务器做的是简单地逐帧读取视频并将帧放入数据包中,然后将它们发送到客户端。当然,客户端必须能够从数据包中读取帧。
我怎样才能做到这一点?有没有可用的教程?
我正在使用 Ubuntu 11.04 机器。
c++ - 使用 libavcodec 解码音频并使用 libAO 播放?
我使用以下代码片段来解码音频文件(用 MP3、WAV、WMV 测试)。
但是当它播放音频时,它只会发出静态声音并时不时地崩溃。关于我在这里做错了什么的任何提示?
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”。
如果有人能为我阐明这个问题,将不胜感激!