gpt4 book ai didi

ffmpeg - 如何在 Android 中录制 720p 视频而不丢帧

转载 作者:行者123 更新时间:2023-12-04 22:56:06 26 4
gpt4 key购买 nike

我使用 NDK 为 android 编译了 ffmpeg 和 h264 库。
我正在使用 muxing.c 录制视频来自 ffmpeg 库的示例。一切正常(仍然无法处理音频),但相机正在丢帧,保存每一帧大约需要 100 毫秒,这是 Not Acceptable 。

我也尝试过创建一个队列并将它们保存到另一个线程(我们称之为 B),但最后我需要等待大约 120 秒,因为后台线程(B)仍在记录帧。

除了减小视频大小之外,是否有解决此问题的方法?理想情况下,我想实时保存帧,至少减少保存时间。只是Android无法做到这一点吗? .

最佳答案

首先,检查硬件编码器是否可以更好地为您服务(通过 Java 中的 MediaRecorder 或 MediaCodec,或使用 native 代码中的 OpenMax)。
如果由于某种原因您必须在软件中进行编码,并且您的设备是多核的,那么您可以通过编译 x264 以使用切片多线程来获得很多好处。让我cite my post of 2 years ago :

We are using x264 directly (no ffmpeg code involved), and with ultafast/zerolatency preset we get 30 FPS for VGA on Samsung Note10 (http://www.gsmarena.com/samsung_galaxy_note_10_1_n8000-4573.php) with Quad-core 1.4 GHz Cortex-A9 Exynos 4412 CPU, which is on the paper weaker than Droid's Quad-core 1.5 GHz Krait Qualcomm MDM615m/APQ8064 (http://www.gsmarena.com/htc_droid_dna-5113.php).

Note that x264 build scripts do not enable pthreads for Android (because NDK does not include libpthread.a), bit you can build the library with multithread support (very nice for a Quad-core CPU) if you simply create a dummy libpthread.a, see https://mailman.videolan.org/pipermail/x264-devel/2013-March/009941.html.


请注意,编码器设置只是问题的一部分。如果您使用已弃用的相机 API,您应该使用预先分配的缓冲区和后台线程来进行相机回调,正如我所解释的 elsewhere .

关于ffmpeg - 如何在 Android 中录制 720p 视频而不丢帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com