2013-07-19 6 views
3

Я хочу разработать приложение для Android, которое позволяет мне непрерывно записывать видео и загружать части видео на сервер, не останавливая запись. Для приложения очень важно записывать до 60 минут без остановки видео.Android кодирует видео с ffmpeg, пока он все еще записывается

Начальный подход

consits Применение двух частей:

  1. MediaRecorder, который записывает видео непрерывно от камеры.
  2. 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-атом):

  1. Создать поток RTSP с Android и доступ потока RTSP позже. Проблема в том, что, насколько мне известно, SDK Android не поддерживает запись в поток rtsp.
  2. Возможно, можно получить доступ к камере напрямую с помощью ffmpeg (/ dev/video0 похоже, это видеоустройство!)
  3. Я прочитал о веб-каналах в качестве альтернативы для потоковой передачи, возможно, андроид может записывать потоки веб-сайтов ?!

TLDR: Слишком долго не читал:

Я хочу получить доступ к видео-файл с FFmpeg (libffmpeg.so) во время записи. Fffmpeg выходит с сообщением об ошибке «Операция не допускается»

Цель:

Моя цель состоит в том, чтобы сделать запись видео (и аудио) и возьмите части видео, пока еще записи и загружать их в сервер.

Возможно, вы можете помочь мне решить проблему или у вас есть другие идеи о том, как подойти к моей проблеме.

Большое спасибо.

+0

У вас есть проблема? – Trinea

ответ

0

Ваше требование в реальном времени может привести вас от ffmpeg к webrtc и/или html5.

некоторые ресурсы;

http://dev.w3.org/2011/webrtc/editor/getusermedia.html (Раздел 5)

https://github.com/lukeweber/webrtc-jingle-client

ondello .. у них есть апи

вместо того, чтобы идти родными и пытаюсь получить в видеопотоке или получить в фреймбуфере приобрести XCOPY, что находится в видеобуфере и затем дублирует поток, управляя соединением (сокет или chunked http), вы можете посмотреть альтернативы типа api ....

+0

спасибо за ваш ответ, я посмотрел ваши ресурсы. Каким-то образом они, похоже, не подходят для моего заявления. –