Esse script foi eficiente para digitalizar VHSs em casa. Você precisará do VLC Media Player e do FFmpeg se quiser converter em mp4 para o nível ideal de compressão. Ajuste v4l2:///dev/video0 :input-slave=alsa://hw:2,0
(entrada de vídeo e áudio), se necessário, de acordo com a sua máquina. Você pode encontrar essas informações usando o VLC e indo para o Media > Dispositivo de captura. Lá você pode ver o nome do dispositivo de vídeo e o nome do dispositivo de áudio.
É um dispositivo mpeg2. Usando VLC para codificar diretamente para mp4 ou h264 produzirá vídeo com lábios fora de sincronia. É por isso que primeiro codifico para o mpeg2 e depois procuro para o mp4. O FFmpeg aqui está configurado para usar 3 de 4 núcleos de CPU, de modo que não ultrapasse a CPU. Você vai querer ajustar -threads 3
de acordo com sua CPU. Se você não tiver certeza, -threads 3
pode ser removido. Certifique-se de marcar o script como executável antes de usar: 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