Скрипт для захвата лент VHS с помощью аналогового цифрового дигитайзера и устройства видеозахвата Hauppauge 610 USB-Live 2

Это устройство поддерживается ядром Linux для современных дистрибутивов Linux. У меня был наибольший успех при использовании VLC Media Player в оцифровке (по сравнению с FFmpeg, который рендерил пиксельное изображение). Однако, как я мог бы создать сценарий, чтобы сделать оцифровку VHS максимально эффективной?

1 ответ

Решение

Этот сценарий был эффективен для оцифровки домашних VHS. Вам понадобятся VLC Media Player и FFmpeg, если вы хотите конвертировать в mp4 для идеального уровня сжатия. регулировать v4l2:///dev/video0 :input-slave=alsa://hw:2,0 (видео и аудио вход) при необходимости в соответствии с вашей машиной. Вы можете найти эту информацию, используя VLC и перейдя в Media > Capture Device. Там вы можете увидеть название видеоустройства и аудиоустройства.

Это устройство MPEG2. Использование VLC для прямого кодирования в mp4 или h264 создаст видео с несинхронизированными губами. Вот почему я сначала кодирую в mpeg2, а затем обрабатываю в mp4. Здесь FFmpeg настроен на использование 3 из 4 ядер ЦП, поэтому он не максимально загружает ЦП. Вы хотите настроить -threads 3 в соответствии с вашим процессором. Если вы не уверены, -threads 3 могут быть удалены. Обязательно пометьте скрипт как исполняемый перед использованием: chmod +x your-script-name

#!/bin/bash

# Enter the name of the file.
read -p "Enter file name: " filename

# Enter how many minutes.
read -p "How many minutes? (If left blank by hitting enter, the default is 124 minutes.): " minutes
if [ -z "$minutes" ]; then
    minutes=124
fi

# Remove any spaces in the file name.
filename=$(echo "$filename" | sed 's/ /-/g')

# This is for metadata. It will show up in the media player playlist or after clicking Properties (in OS X Info) on the file context menu.
read -p "Enter a description: " details

# Turn off sleep. You can uncomment this only if using Xfce.
# xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s 14

# Create Videos directory if not there.
if ! [ -d $HOME/Videos ]; then mkdir $HOME/Videos; fi

# Encode video. 
timeout --foreground ${minutes}m cvlc v4l2:///dev/video0 :input-slave=alsa://hw:2,0 :v4l2-standard=NTSC :live-caching=300 --sout '#transcode{vcodec=mp2v,acodec=mpga,ab=128,channels=2,samplerate=48000,fps=29.97,deinterlace}:std{access=file{no-overwrite},mux=ts,dst='$HOME/Videos/$filename.ts'}'

# Convert to libx264 to compress further, add in the metadata comments, and keep CPU usage to 75%. 
ffmpeg -i $HOME/Videos/$filename.ts -s 720x480 -c:v libx264 -preset medium -crf 22 -acodec copy -metadata comment="$details" -threads 3 $HOME/Videos/$filename.mp4
Другие вопросы по тегам