Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

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.








À 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/

Il faut activer les dépôts Universe et Multiverse si cela n'a pas encore été fait.

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
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

Installation proprement dite

sudo ./install

FIXME ("installasroot" semble innutile)

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
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

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

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/
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
Au 03/01/2009 les CPU "multicores" ne sont pas gérés correctement par les programmes et le script utilisé…

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)


Contributeurs : Lek1, SkeRoy, Mysteroïd.


1)
Ubuntu 7.10 et suivants
  • tutoriel/comment_convertir_mts_m2ts_en_avi.1255032831.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)