Скрипт для циклической записи видео на веб-камеру для Линукса · Заметки

С помощью обычного линуксового софта можно легко превратить вебкамеру в видеокамеру для записи каких-нибудь блогов или в "видеорегистратор", что я для разминки и сделал. Проверено на Ubuntu 14.04.

·· [Continuing] ··

#!/bin/bash

# Длительность и количество видео
# Длительность в секундах
LENGTH="-t 3600"
# Сколько записанных видео оставлять, если значение пустое - оставлять все
# VIDEO_COUNT="10"
VIDEO_COUNT="24"

# Формат видео
# С h.264 какие-то проблемы с синхронизацией, MPEG-1 с очень высоким битрейтом
# выглядит нормально и его потом можно перекодировать.
#OUTPUT_FORMAT="-strict experimental -c:v h264 -preset fast -b:v 4000k -c:a aac -b:a 384k -f mp4"
#OUTPUT_EXTENSION="mp4"
# MPEG-1 (по умолчанию) - самый надёжный вариант, зададим только видео битрейт
OUTPUT_FORMAT="-b:v 4000k"
OUTPUT_EXTENSION="mpg"

# Формат захвата
# Задайте тут OSS/ALSA и устройство ввода звука
AUDIO_IN="-f oss -i /dev/dsp2"
# Для задания частоты сэмплирования звука: -ar 48000
# Устройство и разрешение для захвата видео, разрешение должно поддерживаться камерой
VIDEO_IN="/dev/video0"
RESOLUTION="640x480"

# Цикл записи
while true
do
    DT=`date +%Y-%m-%d-%H%M%S`
    FILENAME="$DT-webcam.$OUTPUT_EXTENSION"

    echo "Output file name: $FILENAME"
    COMMAND="avconv $AUDIO_IN -f video4linux2 -s $RESOLUTION -i $VIDEO_IN $OUTPUT_FORMAT $LENGTH $FILENAME"
    echo "Running:"
    echo "$COMMAND"
    $COMMAND || exit 0

    if [[ "$VIDEO_COUNT" != "" ]] ; then
        echo "Cleaning up older videos..."
        KEEP_VIDEOS=`ls -1 | sort | tail -$VIDEO_COUNT`
        for X in *-webcam.$OUTPUT_EXTENSION ; do
            if [[ $KEEP_VIDEOS != *"$X"* ]]; then
                echo "Removing: $X"
                rm $X
            fi
        done
    fi
done

Tags: Linux.


Comments:

No Comments for this post yet...

Leave a comment:

Your email address will not be displayed on this site.
Your URL will not be displayed on this site. Comments containing URL's of non-personal pages may be removed.
Confirmation Code:
Human Confirmation Code (Captcha)

HTML tags and "<", ">" symbols are not allowed. Links will not be converted to hyperlinks. Any commercials are removed and reported as abuse.

Archives

                                                                                                                                                                                                                                                                   


© Sergey A. Galin, 1998-2021 sageshome.net/blog/