В этой теме хотелось бы описать способ использования Orange Pi (PС) для видео- и звукозаписи,
найти способы оптимизации, услышать мнения/подсказки от шарящих.
1. Операционная системаЗа основу взята
Ubuntu wily mini - как наиболее удобная и небольшая, но для других описанные действия будут аналогичными.
2. Аппаратное обеспечениеOrange Pi PС, USB-вебка или CSI-камера
3. Программное обеспечениедля кодирования использую
ffmpegapt-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. Можно как-то эту команду в одну строку записать, а то по отдельности кодирование аудио, видео, мотом муксинг - как-то некрасиво выглядит.