问题标签 [libfaac]
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 - 使用 ffmpeg libfaac 进行转码可减少音频持续时间
我必须转码一个 mpegts 文件:input.ts(H.264 and AAC) 所以我使用以下命令行:
ffmpeg -y -i input.ts -acodec libfaac -vcodec copy out.ts
但是我发现 output.ts 的音频持续时间比 input.ts 的持续时间短!
如果我进行以下迭代,输出的音频会越来越短。
我的 ffmpeg 的版本是 0.6.6。libfaac 的版本是 1.28。
input.ts 的音频持续时间为 10.432 秒。out-iter5.ts 的音频时长为 10.56 秒
而且我还尝试了 0.11 版本的 ffmpeg。它使音频比原始输入更长。
所以我的问题是:如何确保输出的音频持续时间与输入的音频相同。由于 libfaac 会使音频变短,我该如何弥补呢? (由于某种原因,我不能直接使用 -acodec 复制。)有什么建议吗?
linux - libfaac 施加比特率限制?
我正在尝试在 Ubuntu 12.04 Linux 上编码一些音频。我需要使用 libfaac(使用 1.28 版)进行编码,并且我想以非常低的比特率进行编码 - 包括传输流开销在内的总开销必须低于 64kbps。输入音频为:PCM,48kHz,2 声道,s16,1536 kb/s
使用 faac 命令行工具,我得到下面的输出,对 5 分钟的音频进行了编码——因此有足够的时间让比特率达到平均水平。我不能让它低于 64kbps,或者高于 165kbps。我尝试设置其他一些参数,但无济于事。当我设置比特率 > 64 时,它工作正常。查看 libfaac 代码,我看不到任何地方施加了这些限制。
c - faacEncOpen 为什么 maxOutput bytes 是 unsigned long *
我正在尝试使用libfaac
,我很好奇为什么faacEncOpen()
接收maxOutputBytes
, unsigned long*
因为它只是说有多少字节可以写入输出缓冲区。
那么为什么它是一个指针呢?
c - libfaac 编码奇怪的输出
我正在尝试在我的 C 程序中使用 libfaac 将 16 位 RAW PCM 文件编码为 MPEG-4 MAIN AAC 文件。我不知道我做错了什么,所以当我得到 2 倍长的文件和大胆时记录沉默看起来像这样_| _| _| _| _ 当原始文件看起来像这样时 _ _ _ _ _ _
你能告诉我我做错了什么吗?这是我的代码。
android - 在 Mac OS X 上为 Android NDK r8d 交叉编译 libfaac 时出错
我正在尝试在 Mac 机器上为 android 交叉编译 libfaac,但遇到了一些困难。
设置
- 安卓 NDK r8d
- Mac OS X 10.7.5(64 位)
- libfaac 1.28
我找到了这个链接:Android NDK r6b Cross-compiling libfaac for android (linking libsupc++ questions)并将其用作我的脚本的起点,并对我正在使用的最新版本的 android ndk 和处理器 (armv7a) 进行了修改. 这是我的脚本:
问题
不幸的是,脚本无法正常运行。我收到一个configure: error: C compiler cannot create executables
错误,config.log
文件显示以下罪魁祸首:
解决方案?
我不是最精通 c/c++ 编译/链接机制的来龙去脉,所以我真的不知道为什么__write
没有定义函数。我想我正在使用的编译器、链接器或配置标志可能存在一些问题,但我的环境的一般设置可能有问题。但是,我能够成功地交叉编译其他项目(libx264、libmp3lame、ffmpeg)。
因此,我正在寻找指针以使其正常工作,或者任何其他可以为 android (armv7a) 编译 libfaac 的设置
谢谢!
ffmpeg - 无法使用 ffmpeg 将 .mp3 转换为 .m4a
我完全了解使用中的法律限制,libfaac
但这只是为了我的测试目的。
我已经编译启用ffmpeg
。faac
因此,当我尝试将 .mp3 转换为 .m4a 时,我遇到了错误。请提供此问题的解决方案。我在两个不同的 .mp3 来源上进行了尝试,但仍然遇到相同的错误。
MP3 文件位于http://db.tt/HtpEBpFU
此外,在独立使用 Faac 时,任何文件都会出现这个奇怪的错误。
ffmpeg - How to encode resampled PCM-audio to AAC using ffmpeg-API when input pcm samples count not equal 1024
I am working on capturing and streaming audio to RTMP server at a moment. I work under MacOS (in Xcode), so for capturing audio sample-buffer I use AVFoundation-framework. But for encoding and streaming I need to use ffmpeg-API and libfaac encoder. So output format must be AAC (for supporting stream playback on iOS-devices).
And I faced with such problem: audio-capturing device (in my case logitech camera) gives me sample-buffer with 512 LPCM samples, and I can select input sample-rate from 16000, 24000, 36000 or 48000 Hz. When I give these 512 samples to AAC-encoder (configured for appropriate sample-rate), I hear a slow and jerking audio (seems as like pice of silence after each frame).
I figured out (maybe I am wrong), that libfaac encoder accepts audio frames only with 1024 samples. When I set input samplerate to 24000 and resample input sample-buffer to 48000 before encoding, I obtain 1024 resampled samples. After encoding these 1024 sampels to AAC, I hear proper sound on output. But my web-cam produce 512 samples in buffer for any input samplerate, when output sample-rate must be 48000 Hz. So I need to do resampling in any case, and I will not obtain exactly 1024 samples in buffer after resampling.
Is there a way to solve this problem within ffmpeg-API functionality?
I would be grateful for any help.
PS: I guess that I can accumulate resampled buffers until count of samples become 1024, and then encode it, but this is stream so there will be troubles with resulting timestamps and with other input devices, and such solution is not suitable.
The current issue came out of the problem described in [question]: How to fill audio AVFrame (ffmpeg) with the data obtained from CMSampleBufferRef (AVFoundation)?
Here is a code with audio-codec configs (there also was video stream but video work fine):
And resampling and encoding audio:
windows - 在 Windows 上使用 libfaac 编译 ffmpeg
我正在使用 ffmpeg,我需要它来拥有 libfaac,我知道实现这一点的唯一方法是从源代码编译它。我阅读了一堆教程,并安装了 mingw,但我无法运行命令 ./configure 或 make。有什么我遗漏的东西或其他方法吗?
ruby-on-rails - ffmpeg carrierwave-video 总是返回“未知编码器 libfaac”
我可以通过命令行给 ffmpeg 视频进行转换,它可以愉快地转换它们,但是当我要求它在 rails 中转换东西时,无论我给它什么视频,它都会返回“未知编码器 libfaac”。
我用这条线来称呼它: process encode_video: [:mp4, resolution: "640x480"]
我已经花了几个小时试图(不成功)在 Windows 上用 libfaac 编译 ffmpeg,但现在它看起来很荒谬,因为不是我通过它的所有东西都是 aac。这是怎么回事?
matlab - libfaad2.dll 不是有效的 win32 应用程序 - 依赖错误 kernel32.dll
Win7 服务包 1 Matlab 2013b
你好
我正在尝试将 libfaad2.dll 库(我已准备好编译)包含到 Matlab 中,以便我可以使用这些函数。我用 loadlibrary 命令试试这个。但我收到错误消息 libfaad.dll 不是有效的 win32 应用程序!来自matlab。
使用 DependencyWalker(x64 版本)对 libfaad2.dll 的简短检查表明它需要 c:\windows\system32\Kernel32.dll。但也显示 kernel32.dll 中没有 2 个函数
---> 所以我猜这不是 Matlab 问题
但是 c:\windows\sysWow64\kernel32.dll 包含所需的功能!
我如何告诉 matlab,或者一般来说, libfaad2.dll 文件应该使用 sysWow64\kernel32.dll ?