Я хочу разработать приложение для Android, которое позволяет мне непрерывно записывать видео и загружать части видео на сервер, не останавливая запись. Для приложения очень важно записывать до 60 минут без остановки видео.Android кодирует видео с ffmpeg, пока он все еще записывается
Начальный подход
consits Применение двух частей:
- MediaRecorder, который записывает видео непрерывно от камеры.
- Cutter/Copy - Part: Пока видео записано, я должен вынуть определенные сегменты и отправить их на сервер. Эта часть была выполнена с использованием http://ffmpeg4android.netcompss.com/
libffmpeg.so. Я использовал их VideoKit Wrapper, который позволяет мне напрямую запускать ffmpeg с любыми параметрами, которые мне нужны.
Моя проблема
Я попробовал команду FFmpeg с Params
ffmpeg -ss 00:00:03 -i <in-file> -t 00:00:05 -vcodec copy -acodec copy <out-file>
который работал большой для меня, пока MediaRecorder Андроида закончили запись.
Когда я выполняю ту же команду, в то время как MediaRecorder записывает файл, ffmpeg выходит с сообщением об ошибке «Операция не разрешена».
- Я думаю, что сообщение об ошибке не означает, что андроид предотвращает доступ к файлу. Я думаю, что ffmpeg нуждается в «атомах moov», чтобы найти правильное положение в видео.
По этой причине я думал о других подходов (которые не нуждаются в Moov-атом):
- Создать поток RTSP с Android и доступ потока RTSP позже. Проблема в том, что, насколько мне известно, SDK Android не поддерживает запись в поток rtsp.
- Возможно, можно получить доступ к камере напрямую с помощью ffmpeg (/ dev/video0 похоже, это видеоустройство!)
- Я прочитал о веб-каналах в качестве альтернативы для потоковой передачи, возможно, андроид может записывать потоки веб-сайтов ?!
TLDR: Слишком долго не читал:
Я хочу получить доступ к видео-файл с FFmpeg (libffmpeg.so) во время записи. Fffmpeg выходит с сообщением об ошибке «Операция не допускается»
Цель:
Моя цель состоит в том, чтобы сделать запись видео (и аудио) и возьмите части видео, пока еще записи и загружать их в сервер.
Возможно, вы можете помочь мне решить проблему или у вас есть другие идеи о том, как подойти к моей проблеме.
Большое спасибо.
У вас есть проблема? – Trinea