Автор Тема: Использование как видеорегистратора.  (Прочитано 1447 раз)

Оффлайн nkk

В этой теме хотелось бы описать способ использования Orange Pi (PС) для видео- и звукозаписи,
найти способы оптимизации, услышать мнения/подсказки от шарящих.

1. Операционная система
За основу взята Ubuntu wily mini - как наиболее удобная и небольшая, но для других описанные действия будут аналогичными.

2. Аппаратное обеспечение
Orange Pi PС, USB-вебка или CSI-камера

3. Программное обеспечение
для кодирования использую ffmpeg
apt-get update && apt-get install ffmpeg
Скрипт, который создает в заданной папке видеоролики, именуя их текущей датой-временем:
#!/bin/sh
rm /tmp/*.mp4 /tmp/*.m4a
NKK_TM=120
NKK_DIR=/home/orangepi/
while [ 1 ]
do
NKK_DATE=`date +"%Y-%m-%d-%H-%M-%S"`
ffmpeg -loglevel error -f alsa -i hw:0 -t $NKK_TM -ac 1 -ar 44100 -strict experimental -b:a 64k /tmp/$NKK_DATE.m4a &
ffmpeg -loglevel error -f v4l2 -video_size 640x480 -i /dev/video0 -c:v libx264 -t $NKK_TM -preset fast -crf 25 /tmp/$NKK_DATE.mp4
ffmpeg -loglevel error -i /tmp/$NKK_DATE.mp4 -i /tmp/$NKK_DATE.m4a -c copy $NKK_DIR$NKK_DATE.mp4 && rm /tmp/$NKK_DATE.mp4 /tmp/$NKK_DATE.m4a &
done
NKK_TM=120 - продолжительность каждого ролика в секундах;
NKK_DIR=/home/orangepi/ - путь (со слэшем на конце!), по которому будут созданы файлы;
-b:a 64k - битрейт аудио, по вкусу;
-crf 25 - качество видео, по вкусу, в зависимости от крутизны камеры.

4. Вопросы по доработке
1. Файлы, создаваемые в папке /tmp/, физически размещаются в оперативной памяти? Можно ли тут что-то оптимизировать?
2. Как отправить сигнал и отследить событие завершение вечного цикла записи?
3. Как определить, отследить и выйти из цикла до переполнения дискового пространства?
4. Возможно, еще как-то управлять процессом: что вообще еще может потребоваться от видеорегистратора?
5. Как еще можно оптимизировать кодеки, настройки аппаратного обеспечения для бОльшей производительности с мЕньшим энергопотреблением, может, как-то Mali задействовать?
6. Можно как-то эту команду в одну строку записать, а то по отдельности кодирование аудио, видео, мотом муксинг - как-то некрасиво выглядит.
« Последнее редактирование: Январь 21, 2016, 08:23:19 pm от nkk »
Спалено =(

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 182
  • Лайков: 10
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Использование как видеорегистратора.
« Ответ #1 : Январь 21, 2016, 07:33:42 pm »
Опробовал. В принципе пишет. Только оператор заменил ffmpeg в теле скрипта заменить нужно по подсказке при запуске.
У меня вопрос. Скрипт сам не закрывается. После записи ждет нажатия клавиши ввод для закрытия процесса кодирования. А можно как-нибудь это устранить? Чтобы он автоматом выходил после записи.

Оффлайн nkk

Re: Использование как видеорегистратора.
« Ответ #2 : Январь 21, 2016, 08:02:42 pm »
Он не должен закрываться: это вечный цикл.
По идее, ffmpeg-у нужно посылать некий сигнал завершения а, в конце цикла проверять, ffmpeg завершил работу сам или через сигнал и, в последнем случае, выходить из цикла.

Вообще, меня смутил тот факт, что камера, предлагаемая разработчиком ПИ, позволяет записывать видео с частотой максимум в 8 кадров в секунду (при 800x600) - проще купить отдельно каую-нибудь Eken H9 за 50 баксов
« Последнее редактирование: Январь 21, 2016, 08:06:47 pm от nkk »
Спалено =(

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 182
  • Лайков: 10
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Использование как видеорегистратора.
« Ответ #3 : Январь 24, 2016, 10:08:00 am »
nkk, Я убрал вечный цикл. Сделал запись 1 раз. А скрипт не закрывается. Остается открытым до тех пор пока я с клавиатуры не нажму ввод. Подскажите, пожалуйста, какую команду нужно подать чтобы выйти из режима кодирования. Он из режима кодирования выводится только с консоли.
Я использую для записи web камеру. Качество довольно не плохое. Звук не нужен, поэтому я его отключил.