Ce tutoriel a pour but de décrire une méthode pour encoder des fichiers mts ou m2ts en vidéo .avi. Le tout en installant et en configurant m2tstoavi en ligne de commande.
Le script m2tstoavi a été écrit par Axel Olmos, c'est un moyen facile pour convertir des fichiers vidéo mts/m2ts en .avi.
Il faut activer les dépôts Universe et Multiverse si cela n'a pas encore été fait.
Vous pouvez installer les dépendances pour le script m2tstoavi. Pour cela, installez les paquets mplayer ffmpeg a52dec mencoder x264 faad faac libfaad2-0 libfaad2-dev subversion csh build-essential.
Installer en 1 clic 1) |
---|
apt://mplayer,ffmpeg,a52dec,mencoder,x264,faad,faac,libfaad2-0,libfaad2-dev,subversion,csh,build-essential
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
Compilation et installation :
cd mplayer ./configure make sudo make install
Vous pouvez obtenir le script m2tstoavi en passant par wget avec cette commande :
wget http://www.olmosconsulting.com/m2ts.tar.gz
Le fichier téléchargé est bien entendu dans votre /home/votrenom.
Puis décompresser le fichier téléchargé avec cette commande :
tar zxvf m2ts.tar.gz
On obtient un dossier m2ts.
Puis :
cd m2ts
gedit download
Il faut donc modifier la ligne contenant la version :
set version=16.1
sudo ./install
m2ts$ sudo ./install sudo: unable to execute ./install: Aucun fichier ou dossier de ce type
La solution :
sudo apt-get install csh
et ensuite :
sudo csh install
sudo ./installasroot
Vous pouvez utiliser la méthode par défaut. Surveiller la taille de votre disque dur : il faut de la place pour la conversion.
La commande est en fonction du type du fichier (.mts ou .m2ts) :
m2tstoavi votrefichier.mts
m2tstoavi votrefichier.m2ts
sudo chmod +x <script>
mencoder $videofifo -demuxer rawvideo -rawvideo w=1440:h=1080 -aspect 16:9 -ofps 29.97
Pour ma caméra qui est en full HD (JVC Everio), j'ai du changer cette partie en :
mencoder $videofifo -demuxer rawvideo -rawvideo w=1920:h=1080 -aspect 16:9 -ofps 25
gedit m2tstoavi.fifo
Et remplacer le code par le suivant :
#!/bin/csh #The scripts and instructions in this package are free to use and #redistribute AT YOUR OWN RISK!! Standard disclaimers apply. #NO WARRANTY! if ( $#argv == "0" ) then echo usage: $0 filename.m2ts ... exit else set files=($*) endif set path = ( . $path ) echo using: which xporthdmv || exit which ldecod || exit which ffmpeg || exit echo $0 Starting. echo " " foreach file ($files) if ( ! -f $file ) then echo file $file not found exit endif set filebase=`basename $file | sed s/\.m2ts// | sed s/\.MTS//` set audiofile=/tmp/$filebase".ac3" set audiofile2=/tmp/$filebase".mp3" set videofifo=/tmp/$filebase".yuv" set outputfile=$filebase".avi" if ( ! -f $audiofile ) then echo xporthdmv -hn $file 1 1 1 xporthdmv -hn $file 1 1 1 && mv bits0001.mpa $audiofile else echo $audiofile already exists, not creating it. endif ffmpeg -i $audiofile -f mp3 -r 25 -vn -acodec mp3 -ac 2 -ab 160k $audiofile2 mkfifo $videofifo echo ldecod -i bits0001.mpv -o $videofifo ldecod -i bits0001.mpv -o $videofifo & if ( ! -f $outputfile ) then echo ffmpeg -r 25 -s 1440x1080 -aspect 16:10 -vcodec mpeg4 -sameq -i $videofifo \ -acodec copy -i $audiofile2 \ -b 15000k $outputfile ffmpeg -r 25 -s 1440x1080 -aspect 16:10 -vcodec mpeg4 -sameq -i $videofifo \ -acodec copy -i $audiofile2 \ -b 15000k $outputfile || exit 1 else echo $outputfile exists, not creating it. endif end #echo To remove temporary files: rm -f /tmp/*.ac3 /tmp/*.yuv rm -f ./dataDec.txt ./log.dec bits0001.mpv $videofifo $audiofile $audiofile2 echo $0 complete.
Puis rendez le script exécutable
chmod +x m2tstoavi.fifo
Vous pouvez aussi copier le script dans /usr/local/bin pour ne pas avoir à écrire le chemin complet à chaque fois :
sudo cp m2tstoavi.fifo /usr/local/bin/
m2tstoavi.fifo '<votre_dossier>*'
En utilisant '*', le script est prévu pour traiter tous les fichiers du dossier.
gedit videohdsearch
Et coller le code :
#! /bin/sh find VOTRE_DOSSIER -type f -exec CHEMIN/VERS/videohdconvert '{}' \;
Puis créer le deuxième fichier
gedit videohdconvert
Et coller le code :
#!/bin/sh clear CHEMIN/VERS/m2tstoavi.fifo $1 sleep 10
Et enfin rendez les scripts exécutables :
chmod +x videohdsearch videohdconvert
ffmpeg -i file.mts -acodec copy -vcodec copy file.avi
ou
mencoder file.mts -o ./file.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=5000 -fps 50 -vf scale=1280:720
Adaptez cette ligne à vos besoins:
ffmpeg -i file.mts -acodec copy -vcodec libx264 -crf 21 -r 30000/1001 -deinterlace -vpre lossless_medium -y -threads 0 file.avi
mencoder inputfile.MTS -fps 50 -oac pcm -demuxer lavf -vf pp=ci,detc,softskip,scale=1440:1080 -ofps 25 -ovc lavc -lavcopts vcodec=mpeg4:format=YV12:vstrict=-1:aspect=16/9:vqscale=1 -o outputfile.avi
Lien vers le topic :
http://ubuntuforums.org/showthread.php?t=1045153