Android: FFmpeg использует большой объем памяти / процессор, вызывая сбой - PullRequest
0 голосов
/ 29 января 2019

Я скомпилировал ffmpeg для Android, включил mediacodec и jni.это работает, но когда я объединяю HD видео 60fps, приложение вылетает.этот ffmpeg cmd я использую.

[-y, -benchmark, -ss, 0.0, -t, 11.541, -i, VID_HD.mp4, -filter_complex, [0:v]setpts=PTS-STARTPTS,scale=1080.0:1920.0:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=#000000, -c:v, libx264, -c:a, aac, -ac, 2, -ar, 44100, -preset, ultrafast, -strict, -2, VID_HD.ts]

Иногда я получаю эти ошибки для тех же cmds, но при повторном запуске это работает, а иногда и, если я повторяю 3-4 раза, перезапускаю приложение.может из-за памяти не убирает.Помоги мне здесь.

Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

VideoKit:Error: Failed to inject frame into filter network: Out of memory

VideoKit:Error: Error while processing the decoded data for stream #0:0

Мне нужна помощь в очистке FFmpeg также после завершения выполнения, и я вызываю метод run (FFmpeg cmds) для следующего кодирования видео, перезапускаю приложение, подозреваю, из-за использования памяти.

1 Ответ

0 голосов
/ 29 января 2019

После просмотра моего кода я обнаружил, что я не вызываю exit_program() в конце выполнения метода ffmpeg_main_entry(), который вызывает exit_program(), и этот метод зарегистрирован ffmpeg_clenup() по ссылке program_exit.После написания этого однострочного кода exit_program() он работает, но все еще тестируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...