Table des matières

, , ,

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 suivant peut faire crasher votre PC, si c'est le cas, préférez la méthode suivante : Kaffeine : convertir m2t en avi

Une des solutions plus récentes et plus simples d'emploi est : handbrake, dont le site en anglais est : http://handbrake.fr/ et la page d'Ubuntu : handbrake

Le script m2tstoavi a été écrit par Axel Olmos, c'est un moyen facile pour convertir des fichiers vidéo mts/m2ts en .avi.

À noter : vlc convertit également très bien le MTS en ce que l'on veut ! En tout cas avec VLC 0.9.9a et Ubuntu 9.04 j'ai pu convertir sans difficulté du MTS (AVCHD) de mon Panasonic Lumix ZS3 (TZ7) en M-JPEG ou en H-264 (je n'ai pas tout essayé).

Il existe aussi un logiciel de montage video qui accepte très bien le MTS et tous les formats AVCHD et bien sûr beaucoup d'autres formats : OpenShot http://www.openshotvideo.com/

Depuis la version Ubuntu 9.10 le support du AVCHD est meilleur. Totem et VLC ont pu lire les fichiers de mon Canon LEGRIA HF200 et Kdenlive arrive très bien à les exploiter.

Sous (C)Ubuntu 14.04 -Trusty Tahr, le logiciel Xine lit en natif les fichiers MTS; VLC ne les lit toujours pas en natif depuis la version paquet .deb; Les transcodeurs FFMPeg, VLC doivent être mis à jour

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)

apt://mplayer,ffmpeg,a52dec,mencoder,x264,faad,faac,libfaad2-0,libfaad2-dev,subversion,csh,build-essential

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

Pour la conversion, c'est la version des dépôts (Ubuntu 8.04 LTS) de ffmpeg qui a fonctionné. La version svn n'a donné aucun résultat.

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

Au 07/10/09, la version de JM à télécharger est la 16.1. Cette version est visible sur la page : http://iphome.hhi.de/suehring/tml/download

Il faut donc modifier la ligne contenant la version :

set version=16.1

Cette modification n'est plus à faire (12/09/2011)

Installation proprement dite

sudo ./install

Il est possible que la commande sudo ./install ne marche pas et vous retourne :

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

FIXME (“installasroot” semble inutile)

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

Pensez à rendre les scripts exécutables par clic droit / propriétés / permissons dans Nautilus ou par le terminal :

sudo chmod +x <script>

Dans le fichier m2tstoavi, le format et le fps de la video est indiqué comme suit :

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

Au lieu d'encapsuler le fichier son au format ac3, on le convertit en mp3 avant. De plus, on utilise la version m2tstoavi.fifo pour utiliser moins de mémoire sur le disque dur pendant la conversion. Méthode testée pour transcoder les fichiers .MTS d'un camescope Sony AVCHD HDR-SR8E.

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/

Automatisation de la conversion

Pour peu que vos noms de dossiers ne contiennent pas d'espaces, il suffit de faire

m2tstoavi.fifo '<votre_dossier>*'

En utilisant '*', le script est prévu pour traiter tous les fichiers du dossier.

Utilisation de deux scripts : le premier qui liste les fichiers d'un dossier, et qui lance la conversion pour chaque fichier l'un après l'autre

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

plus simple

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:

Les commandes ci-dessus ne marchant pas chez moi, voici la commande qui a marché pour des vidéos d'un PANASONIC HDC-SD40:

ffmpeg -i file.mts -acodec copy -vcodec libx264 -crf 21 -r 30000/1001 -deinterlace -vpre lossless_medium -y -threads 0 file.avi

Pour moi la ligne ci-dessus avec mencoder fonctionnait mais la vidéo que j'obtenais était lente et saccadée. J'ai trouvé sur le forum ubuntu anglais celles-ci :

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

Liens


Contributeurs : Lek1, SkeRoy, Mysteroïd, CasseTaTele.

1) Ubuntu 7.10 et suivants