Ceci est une ancienne révision du document !
Comment convertir les fichiers vidéos MTS ou M2TS en vidéo « .avi » ?
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.
Pré-requis
Il faut activer les dépôts Universe et Multiverse si cela n'a pas encore été fait.
Installation du script m2tstoavi
Dépendances
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) |
---|
Téléchargement de la dernière version de Mplayer
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
Compilation et installation :
cd mplayer ./configure make sudo make install
Téléchargement
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
Modification de la version à télécharger
gedit download
Il faut donc modifier la ligne contenant la version :
set version=15.1
Installation proprement dite
sudo ./install
("installasroot" semble innutile)
sudo ./installasroot
Utilisation du script m2tstoavi
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
Script pour encoder un fichier avec le son lisible par Totem et VLC
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
Pour 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/
Automatisation de la conversion
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
Amélioration pour processeurs multicoeurs (dual et quad cores...)
Avec des modification de scripts on arrive sans problème à tripler la vitesse de conversion sur un quad-core lors des conversions de plusieurs fichiers. (Il faut pour celà d'utiliser une conversion en parallèle sur les différents coeurs de votre processeur car ldecod ne gère pas les multi-coeurs.)
Dès que j'ai le temps je vous post ça … (Si ça traîne à venir contactez Mysteroïd, voir bas de page, les demandes me motiveront… :p)
Liens
- Méthode largement influencée par : Wesleybailey.com et les commentaires de Transcoding MTS/M2TS AVCHD Video Into AVI Files with Free Software