Da miniDV a mkv

Chi possiede come me una videocamera del tipo MiniDV, ha il fastidioso problema di dover prima catturare le registrazioni in formato raw (files con estensione .dv) e poi convertirle in un formato a noi più comodo. Questa guida descrive i passi da seguire per ottenere files di tipo matroska (.mkv con compressione x264) partendo dai video sulla nostra videocamera, chiaramente utilzzando un pc con sistema operativo Linux.

Requisiti

  • dvgrab: per catturare lo stream audio/video dalla videocamera e trasferirlo su file .dv
  • ffmpeg: per convertire i video da .dv a .mkv
  • mkvmerge: per unire più video in un unico .mkv (di solito il pacchetto di utilità che contiene questa applicazione è mkvtoolnix)

Mettiamoci all’opera

Colleghiamo la nostra videocamera alla porta firewire, riavvolgiamo tutto il nastro e lanciamo il comando per catturare il video:

$ dvgrab --autosplit --format raw --size 0 --opendml capture-

nella cartella corrente vengono creati una serie di file che iniziano per capture- con estensione .dv che contengono i video catturati dalla videocamera.

Il passo successivo è quello di convertire ogni singolo file da.dv a .mkv avvalendoci di ffmpeg. Per velocizzare l’operazione ho scritto questo semplice script bash:

#!/bin/bash  
# NAME: dv2mkv 
# DESC: bash script to use ffmpeg to convert .dv files into .mkv (x264) files passing only a folder 
#       require ffmpeg, libx264 and basename script 
# before can use command: 
#       $ dvgrab --autosplit --format raw --size 0 --opendml capture- 
#       to capture video from MiniDV camera to .dv files on hard disk   

# ffmpeg parameters to use for conversion 
FFMPEG_PARAMS="-acodec libmp3lame -aq 4 -vcodec libx264 -preset medium -crf 24 -s 720x576 -aspect 4:3 -deinterlace -threads 0"   

# check for parameter presence 
if [ -z $1 ]; then
     echo -e "devi specificare la cartella in cui sono contenuti i file .dv da convertire\n"
     exit 1 
fi   

# check for folder presence 
if [ ! -d $1 ]; then
     echo -e "la cartella specificata non esiste\n"
     exit 2 
fi  

# get file list with dv extension 
FILES="$1/*.dv"  

# loop for each .dv files 
for f in $FILES 
do
     FILE=$(basename "$f")
     echo -e "\n\n>>> Processing $FILE"

     # conversion command
     ffmpeg -i "$f" $FFMPEG_PARAMS "$f".mkv
done

per cui è sufficiente richiamare lo script passandogli come parametro la cartella dove sono contenuti i files .dv da convertire (nel mio caso /home/armando/Video):

$ ./dv2mkv /home/armando/Video

nella cartella vengono creati i nuovi file .mkv che possiamo, a questo punto, raggruppare a seconda degli argomenti utilizzando il comando mkvmerge: ad esempio se voglio raggruppare da capture-001.dv.mkv a capture-004.dv.mkv uso il seguente comando:

$ mkvmerge -o gita_al_mare.mkv capture-001.dv.mkv +capture-002.dv.mkv +capture-003.dv.mkv +capture-004.dv.mkv

i files .dv e .dv.mkv, a conversioni e raggruppamenti ultimati, possiamo anche eliminarli.

Lascia il primo commento

Lascia un commento