[TUTO] Conversion TS, MTS, M2TS HD en MP4 ou MKV tout simplement

Conversion TS, MTS, M2TS HD en MP4 ou MKV tout simplement [TUTO] - Traitement Vidéo - Video & Son

Marsh Posté le 31-07-2011 à 18:40:44    

Mise à jour du 24 Aout 2011
======================
 
Bonjour à tous les fan de Hardware.fr
Voici un tutoriel que j'ai réalisé afin de convertir une chaine de la TNT, ou d'une Freebox HD (fichier M2TS), ou encore un fichier d'un caméscope HD (AVCHD), en MP4 ou en MKV, aussi facilement que vous le pensez.
En effet, rien de plus énervant que de ce retrouver avec un fichier en .TS qui pèse plus de 7Go comportant des Pubs avant et après l'émission ou le film que l'on désire garder.
Il existe sur le Web une multitude de logiciels payant et gratuit qui permettent de convertir et/ou de couper une partie de la vidéo que l'on désire supprimer.
Mais voilà, certains logiciels (software, freeware, shareware) ne font qu'à leur têtes et un bon nombre ne fonctionnent pas correctement ou bien avec un résultat plutôt décevant voire médiocre à la fin du traitement finale du fichier. Que du temps de perdu ! Certains même, n'ouvrent pas du tout le fichier car il est inconnu ou corrompu avec, souvent, un Crash du logiciel.
J'ai essayé pas mal de freeware, comme Super, Mediacoder, Avidemux, Virdualdub, Handbrake, et j'en oublie à l'heure où j'écris, mais aucun ne me convenaient. Car au final, ma vidéo était soit saccadée, soit non convertie.
Pour les logiciels payant, je les ai testés en version de démonstration. Il y a Tmpgenc Xpress, AVS video converter, HD Video converter, Vegas et d'autres surement que je n'ai pas encore essayés. Ils sont eux aussi décevant. Il m'a fallu parfois encoder une première fois pour ré-encoder une deuxième fois avec un autre software. Et même pour certains logiciels il faut en plus télécharger un pack de codec car sinon, ils ne reconnaissent pas la vidéo. Et même avec un pack, sa plante.
Donc c'est pour cela que je m'attaque à la fameuse ligne de commande afin de savoir ce que je fais et ce que je voudrais avoir à la fin. Pas tout compris ? Explication plus bas :
 
Pour info :

Un fichier vidéo récupérer sur un boitier décodeur TNT (ou depuis une carte TNT sur PC ou d'un caméscope HD), est un fichier au format TS. TS pour Transport Stream (MTS pour un caméscope et M2TS pour la Freebox HD)
C'est un conteneur vidéo (comme les MKV) qui permet d'englober beaucoup d'informations : Piste vidéo, plusieurs pistes son, des sous-titres et d'autres informations sous forme de Data d'une chaine TNT. Pour un caméscope : une piste vidéo et une piste audio dans un conteneur MTS.


Ce fichier va être réencoder au format MP4 ou MKV afin d'être lisible sur la plupart des pc et des lecteurs multimédia de salon avec le fameux codec H264/AVC, le plus répandu, et le fameux et l'excellentissime software Ffmpeg avec le codec x264 intégré.
 
Attaquons maintenant à ce fameux tutoriel.
 
Tout d'abord, voici ce que ce dont vous aurez besoin pour le traitement vidéo. Rassurez-vous, il n'y a rien à installer, ni à configurer :
Télécharger ffmpeg 32-bit Builds (Shared) si vous avez un système 32 bits ou 64-bit Builds (Shared) si vous avez un 64 bits, prenez la dernière version à cette adresse : http://ffmpeg.zeranoe.com/builds/
C'est tout ? Et oui, point besoin de pack ou de config supplémentaires. FFmpeg et LE meilleur encodeur gratuit ET autonome (un peu comme VLC pour lire sans installation de logiciel tiers). Qui dit mieux ?
 
Aussi, je vous le dis maintenant, il faut pour traiter la vidéo, un ordi assez puissant (n'essayer pas avec un EEEpc. Je sais qu'il y en a qui le ferais  :pt1cable: ). Ayez au moins un Core i5 voire i7 double cœur ou même mieux, un quadri cœur. L'encodage de la vidéo risque d'être très très long pour ceux qui ont une petite config.
Un exemple avec un QuadCoeur Q6600 / Core2Duo E8XXX : Encodage vidéo à 7-12 image/sec. Avec un Core i7 quadricœur : 25-30 image/sec. CUDA n'est pas pris en charge avec les cartes Nvidia car FFmpeg ne le gère pas encore (pour le moment).
Ce tutoriel n'est pas vraiment simple à réaliser car tous est fais en ligne de commande et une petite erreur de virgule ou de caractère peut ne pas marcher et avoir des résultats différents voire catastrophiques. Aussi, il est préférable que le nom des dossiers et/ou des fichiers soient LE PLUS COURT POSSIBLE ET SANS ESPACE OU CARACTÈRE SPÉCIALE afin de ne pas se tromper sur le chemin de fichier.
 
Une fois télécharger FFmeg, dézipper-le. Prenez un répertoire assez court à la racine de C:\. Par exemple "C:\FFmpeg". Il faut que l’exécutable doit se trouver du genre "C:\FFmpeg\bin\ffmpeg.exe"
 
Lors du traitement vidéo, il faut beaucoup d'espace disque car ce traitement se fait en plusieurs étapes (vidéo source, vidéo encodée, son encodé). Pour exemple, un fichier TS qui fait 5Go, prévoyez au moins 10Go d'espace libre. Je vous conseille de le faire sur une autre partition ou un disque dur externe (surtout pas une clé USB). Par exemple : <input> = "D:\video\mon_fichier.ts"
 
Pour ceux qui veulent encoder sans supprimer de parties vidéos, passer à la 2ème partie.
N.B : Les parties en rouge sont des valeurs à changer pour le chemin où se trouve le fichier TS (ou MTS, ou M2TS), en noir et en gras NE PAS TOUCHER
 
 
1ère PARTIE : la visualisation / récupération d'infos :
-------------------------------------------------------
 

  • Ouvrez une invite de commande DOS (Menu démarrer, tous les programmes, accessoires, Invite de commandes)
  • Lancer cette commande  : C:\ffmpeg\bin\ffmpeg -i "<input>" où "<input>" est votre fichier source avec le chemin entier. N'oubliez pas de mettre la source entre guillemets.
  • Notez-y les infos suivantes : A la ligne "Duration", récupérer la valeur de "start" (tous les chiffres et les 2 premiers chiffres après la virgules). Pour la partie son, récupérer la valeur du stream (Stream #0.X) qui contient la piste son que vous voulez récupérer (généralement la première ou la seconde en Dolby Digital)
  • Lancer cette commande afin de visualiser la vidéo pour conserver la partie que l'on veut garder et couper les bords noir automatiquement : C:\ffmpeg\bin\ffplay -i "<input>" -stats -vf cropdetect,scale=iw/2:ih/2. Les touches "droite/gauche" permettent d'avancer ou de reculer de 10 secondes. Les touches "haut et bas" permettent d'avancer ou de reculer de 1 minute. La touche "s" pour le mode image par image, la barre d'espace pour lecture/pause et la touche "a" pour quitter le lecteur. Cette commande permet, dans la fenêtre DOS, de visualiser la détection des bords noire (ligne CROP= à récupérer) et la valeur du compteur (deux chiffres après la virgules) lorsque la vidéo est en pause à l'aide de la touche S ou la barre d'espace. La commande "scale" permet de réduire la taille de la vidéo par 2 pour visualiser dans une petite fenêtre afin de ne pas occuper tout l'écran. Rien ne vous empêche d'ajouter la commande "-ss" avant le "-i <input>" si vous voulez démarrer la vidéo plus loin dans le temps, la valeur est en secondes. Ex: ffplay -ss 120 -i <input> permet de passer les 120 premières secondes de la vidéo.
  • Lorque vous visualisez la vidéo, un compteur tourne dans la fenêtre DOS tout en bas à gauche. Dès que vous avez atteint la partie où commence le film à l'aide des touches "gauches/droites haut/bas" et "S" ou "Espace". Notez la valeur de ce compteur (tous les chiffres et les 2 premiers chiffres après la virgules).
  • Continuer à visualiser la vidéo jusqu'à la fin du film (touche flèche du haut pour avancer de 10 minutes) et notez de nouveau le compteur.
  • A l'aide d'une calculatrice (ou de tête mais gaffe aux erreurs), soustrayez la valeur du compteur de la fin du film et la valeur du compteur du début du film. Ce qui vous donne le temps exacte en secondes de votre film (rajoutez-y deux secondes de plus afin de ne pas avoir de surprise s'il manque deux secondes du film). Notes ces valeurs sur un papier ou dans un bloc notes  


 
2ème PARTIE : ENCODAGE VIDEO/AUDIO : (La plus longue étape)
--------------------------------------------
 
Pour ceux qui veulent encoder sans supprimer de parties vidéos, voici la ligne de commande à effectuée : C:\ffmpeg\bin\ffmpeg -i "<input>" -threads 0 -an -sn -vcodec libx264 -profile high -preset faster -crf 27 -vf yadif=0:-1,scale=1920:1080,setdar=16:9,format=yuv420p -qmin 10 -alang fra -x264opts videoformat=pal -y "<output.m4v>". Ensuite passez à la 3ème étape.

  • Reprenez la valeur de "start" (la ligne Duration), que vous avez pu noter au début de la 1ère partie. A l'aide d'une calculette, soustrayez la valeur du compteur du début du film et la valeur de "start". Ce qui vous donne le temps en secondes avant le début du film (les fameuses PUB et la météo)
  • Voici maintenant la commande afin de convertir la vidéo uniquement : C:\ffmpeg\bin\ffmpeg -ss xx -i "<input>" -threads 0 -an -sn -vcodec libx264 -profile high -preset faster -crf 27 -vf yadif=0:-1,crop=1920:1072:0:4,scale=1920:1080,setdar=16:9,format=yuv420p -qmin 10 -alang fra -t xx -x264opts videoformat=pal -y "<output.m4v>". La commande "-ss" permet de mettre le temps avant le film et la commande "-t" la durée de votre film. ATTENTION A NE PAS VOUS TROMPER. Petite indice la valeur de la commande -ss est plus petite que la valeur de la commande -t.


"<input> et <output>" : vos fichiers sources et destinations avec le chemin complet.
"-an -sn" : Désactive les sous-titres et la partie audio.
"-crf xx" : correspond à la qualité de la vidéo, plus vous descendez vers 0, meilleur sera la qualité, mais plus gros sera le fichier. Je vous conseille de ne pas monter au-dessus de 30 (ça va jusqu'à 50) car la qualité commence à se dégrader pour une vidéo HD (légère pixellisation, et vidéo moins nette). Vous pouvez mettre à la place de "-crf" la commande "-b 5000k" pour par exemple mettre une valeur fixe en bitrate (ici : 5000 Kbits/sec)  
"-crop=" : Mettez-y la valeur récupérer lorsque vous avez prévisualisez la vidéo (CROP=). A défaut, vous pouvez enlever cette commande avec la virgule afin d'avoir ceci : -vf yadif=0:-1,scale=1920:1080,setdar=16:9,format=yuv420p. Le reste n'y toucher pas.
"yadif=0:-1" : signifie le désentrelacement de la vidéo avec le filtre YADIF (le meilleur, voire sur google : YADIF), le 0 signifie en "simple framerate" (le 1 pour "double framerate", mais taille fichier plus gros et qualité égale) et -1 détection automatique des lignes paire et impaire.
"scale" : signifie que la vidéo après avoir supprimer les bords noire sera remis en 1920 par 1080 afin de garder la compatibilité du format vidéo en 16/9ème.

  • Patientez un bon moment.
  • On va faire pareil pour le son : C:\ffmpeg\bin\ffmpeg -ss xx -i "<input>" -threads 0 -acodec ac3 -map 0.2 -ab 192000 -ar 48000 -ac 2 -alang fra -vn -t xx -y "<output.ac3>". N'oubliez pas de bien mettre la bonne piste son. Moi dans mon cas j'ai choisi la 2ème (map 0.2). On encode en 192k (-ab 192000) 48000hz (-ar 48000) et en stéréo (-ac 2). Rien ne vous y oblige à changer ces valeurs.
  • L'encodage est un peu plus rapide, comptez au moins 10 bonnes minutes.

Oubliez le AAC car Ffmpeg ne le gère pas bien, cet encodeur est en version expérimental et donne de mauvais résultat. La bibliothèque libavaac n'existe plus sur cette version de Ffmpeg.
 
 
3ème PARTIE :  REMUXAGE DE LA VIDEO ET AUDIO: (Sortie en MP4 ou MKV)
----------------------------------------------------
 

  • Une fois la vidéo et l'audio reconvertis, il faut maintenant les assembler afin d'avoir qu'un fichier vidéo. Voici la commande pour le mp4 : C:\ffmpeg\bin\ffmpeg -i "<input.m4v>" -i "<input.ac3>" -acodec copy -vcodec copy -y "<output.mp4>" ou bien pour le mkv : C:\ffmpeg\bin\ffmpeg -i "<input.m4v>" -i "<input.ac3>" -acodec copy -vcodec copy -y "<output.mkv>"
  • Le temps de tous recoller, cela peut prendre 5 à 8 minutes.


Il se peut que la bande son à un décalage minime sur la vidéo. Cela peut arriver, moi c'est un peu le cas pour les émissions TV. Dans ce cas, il faut refaire un remuxage mais avec un paramètre en plus, la commande "-itsoffset". Si la bande son est EN AVANCE sur la vidéo, alors la commande est : C:\ffmpeg\bin\ffmpeg -i "<input.m4v>" -itsoffset xx -i "<input.ac3>" -acodec copy -vcodec copy -y "<output.m__>". Si la bande son est EN RETARD sur la vidéo alors la commande est : C:\ffmpeg\bin\ffmpeg -i "<input.ac3>" -itsoffset xx -i "<input.m4v>" -acodec copy -vcodec copy -y "<output.m__>". La valeur de "itsoffset" est exprimée en secondes. Par exemples "-itsoffset 0.100" signifie un décalage de 100ms. (C'est mon cas pour la TNT avec une légère avance de la bande son de 100ms)

  • Voilà, le fichier est maintenant reconverti et lisible sur la plupart des platines de salon. Note: vous avez-vu la taille finale de votre fichier ?


Félicitation, vous avez pu ré-encoder votre fichier en deux temps trois mouvement.
Merci d'avoir choisi et de lire ce tutoriel jusqu'au bout. J’espère que vous avez appréciez et découvrir que votre fichier est correcte.
Pour toutes questions ou autres remarques, merci de me laisser des commentaires.
 
N.B : Suite à des personnes qui ont des soucis avec d'autres vidéos, je précise aussi que vous pouvez prendre exemple sur ce tutoriel pour aussi convertir tout autres fichier vidéo en entrée (AVI, MOV, MPEG1/2/4, DiVX3/4/5/6, ASF, MTS, M2TS, TS, WMV et RM). C'est fait pour ça et c'est tout aussi simple (et aussi rapide, voire plus rapide mais surtout plus pratique) qu'un "bad-machinware" ;)


Message édité par bdomi49 le 24-08-2011 à 07:10:08
Reply

Marsh Posté le 31-07-2011 à 18:40:44   

Reply

Marsh Posté le 02-08-2011 à 11:17:53    

flag
ca marche aussi avec les fichiers m2ts de la v6 ?


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 02-08-2011 à 13:33:30    

Je n'ai pas de V6 mais avec un fichier m2ts (si HD) çà doit marcher.

Reply

Marsh Posté le 08-08-2011 à 15:55:06    

Petit 'up suite mise à jour !

Reply

Marsh Posté le 08-08-2011 à 16:07:37    

Pourquoi ne pas garder la bande son originale ?
Si vraiment tu veux compresser, autant passer en aac, mais là il faut oublier ffmpeg ;)
 
Et petite astuce pour éviter le décalage son/vidéo : moi je coupe d'abord qq secondes en début de fichier et ensuite j'utilise ce nouveau fichier comme source :jap:

Message cité 1 fois
Message édité par WhyMe le 08-08-2011 à 16:10:09

---------------
FeedBack HFR
Reply

Marsh Posté le 08-08-2011 à 17:11:57    

WhyMe a écrit :

Pourquoi ne pas garder la bande son originale ?
Si vraiment tu veux compresser, autant passer en aac, mais là il faut oublier ffmpeg ;)
 
Et petite astuce pour éviter le décalage son/vidéo : moi je coupe d'abord qq secondes en début de fichier et ensuite j'utilise ce nouveau fichier comme source :jap:


 
Ma bande son original est en 6canaux à 256Kbits, je voulais la réduire à 2 canaux stéréo et à 192Kbit. Petite taille.
Quand à l'AAC, ffmpeg ne le gère pas très bien (strict experimental), j'ai eu des soucis avec et la qualité laisse à désirer. Donc, je conserve l'ac3 (note : même compression que l'aac).
 
Pour le décélage, bien évidemment, on peut tester la partie audio et vidéo sur quelques secondes en y ajoutant -t 300 (5 minutes) afin de ne pas recoller l'ensemble de la vidéo. En effet !

Message cité 1 fois
Message édité par bdomi49 le 08-08-2011 à 17:14:21
Reply

Marsh Posté le 09-08-2011 à 16:25:20    

Sinon on fait comme dans le temps, un xvid 700k avec du mp3 128k :D


---------------
Ne vous mariez qu'une fois dans votre vie tellement c'est galère © randolfinette | Quand l'antre grogne, le diable cogne... | Un problème d'acquisition VHS?
Reply

Marsh Posté le 09-08-2011 à 16:30:54    

Hafrexx a écrit :

Sinon on fait comme dans le temps, un xvid 700k avec du mp3 128k :D


 
Ta ressortie la bonne vieille recette de ma grand-mère toi, la bonne vieille soupe !!!

Reply

Marsh Posté le 09-08-2011 à 16:58:08    

J'avoue que pour regarder sur ma TV cathodique, ça me suffit amplement, et si je veux pouvoir lire ça dans le train sans lags sur mon centrino 1.7GHz vaut mieux utiliser la soupe à mamie :D

 

Ceci dit ta méthode marche parfaitement pour faire de la bonne sou-soupe :jap:

Message cité 1 fois
Message édité par Hafrexx le 09-08-2011 à 16:58:39

---------------
Ne vous mariez qu'une fois dans votre vie tellement c'est galère © randolfinette | Quand l'antre grogne, le diable cogne... | Un problème d'acquisition VHS?
Reply

Marsh Posté le 20-08-2011 à 13:59:27    

'up

Reply

Marsh Posté le 20-08-2011 à 13:59:27   

Reply

Marsh Posté le 22-08-2011 à 22:55:11    

Hafrexx a écrit :

J'avoue que pour regarder sur ma TV cathodique, ça me suffit amplement, et si je veux pouvoir lire ça dans le train sans lags sur mon centrino 1.7GHz vaut mieux utiliser la soupe à mamie :D
 
Ceci dit ta méthode marche parfaitement pour faire de la bonne sou-soupe :jap:


 
 
donc apparemment vous avez le même problème que moi
http://forum.hardware.fr/hfr/Video [...] m#t1740231
donc le HD sur des machines peu puissante, il faut oublier !!!???


---------------
Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.”
Reply

Marsh Posté le 23-08-2011 à 05:58:35    

serge152 a écrit :


donc le HD sur des machines peu puissante, il faut oublier !!!???


 
Ce n'est pas très conseillé car ca va saccader à moooooooooooort !
 
Il faut au moins un core 2 duo et une bonne carte graphique (ATI HD 3xxx/4xxx ou Nvidia GT 7xxx) qui sait décoder la HD en soulagant le proc.
A  la limite un 720p (1280x720) doit pouvoir passé avec un laptop qui date de 3-5 ans.


Message édité par bdomi49 le 23-08-2011 à 06:00:41
Reply

Marsh Posté le 23-08-2011 à 11:43:44    

merci de votre réponse,  
bon hé bien c'est mon cas apparemment malgré un ultra portable acheté en 12/2010
Portable HP dm3-2160ef  
AMD Athlon II Neo K325 - RAM 4Go  
Video Ati Radeon HD4225 (128Mo de mémoire cache DDR3)
Windows Seven Home premium 64bits  
 
qu'en pensez-vous ?


---------------
Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.”
Reply

Marsh Posté le 23-08-2011 à 12:41:33    

Le proc n'est pas tout récent mais ca doit être juste pour regarder un 1080p. Un 720p passe largement avec ce type de config.

Reply

Marsh Posté le 24-08-2011 à 07:00:44    

Petit 'up permettant de convertir d'autres vidéos que le TS et sortie en MP4 ou MKV

Reply

Marsh Posté le 24-08-2011 à 10:54:49    

Correction : il faut une ATI HD OU un bon cpu
Les ATI décodent complétement les flux HD, le cpu ne fait strictement rien.
 
Pour les NVidia c'est pas la même chose sur les 1ères séries, où là effectivement il faut en + un bon cpu :jap:
 
EDIT : et le HD4225 est parfaitement capable de décoder les flux HD puisqu'il gére l'UVD2, c'est donc un pb de player / filtre


Message édité par WhyMe le 24-08-2011 à 10:58:30

---------------
FeedBack HFR
Reply

Marsh Posté le 24-08-2011 à 11:28:49    

Pour l'encodage il faut un BON cpu, les cartes graphiques ne sont pas pris en charge par ffmpeg pour l'encodage.
En revanche pour le décodage (VLC par ex.) prend bien en charge les cartes graphiques assez récente pour lire la vidéo HD tout en soulageant le Cpu et le plus fluide possible.

Reply

Marsh Posté le 06-09-2011 à 17:23:22    

Bonjour !
 
Je n'ai encore essayé ce tuto, mais je vais le faire sous peu puisque je me sers du Media Center de Windows 7 Famillial Premium et d'une clé TNT pour enregistrer des films que je souhaite conserver.
 
Si j'ai bien compris, suivre ce tuto permet de supprimer les pubs diffusées avant et après un film dont on a programmé l'enregistrement, puis de le compresser en préservant une bonne qualité d'image. Ca fait un moment que je cherche ça ! :)  
 
Petites questions subsidiaires tout de même : Est-il possible de couper les pubs diffusées au milieu du film ? Comment ?
 
En tout cas, merci d'avoir pris le temps de détailler toute cette procédure.

Reply

Marsh Posté le 06-09-2011 à 21:28:59    

Oui, il est possible de supprimer les pubs au milieu du film, mais le film sera coupé en 2 fichiers car je n'ai toujours pas réussi à coller 2 mp4 sans réencoder.
Pour cela, lors du visionnage du film avec ffplay dans la 1ère partie, il suffit de relever le compteur avant le film et jusqu'à la coupure du film (vers le milieu), là il faut soustraire les deux compteurs relevés afin d'avoir la 1ère partie du film. Il faut faire ensuite pareil pour la 2ème partie du film.
 
Bon courage !
 
Edit : Pour coller 2 mp4 après avoir supprimer les pubs, il suffit d'utiliser mkvmerge pour recoller 2 vidéos (bien mettre compression : none dans "extras option" pour la vidéo et audio afin de rendre le fichier lisible pour un prochain réencodage). Tu aura ainsi plus qu'un seul fichier mais en mkv et sans coupure pour avoir un film entier et sans pub. :D


Message édité par bdomi49 le 06-09-2011 à 21:32:46
Reply

Marsh Posté le 07-09-2011 à 10:47:59    

Et bien il n'y a plus qu'à essayer tout ça. ;)  
 
Merci !

Reply

Marsh Posté le 02-11-2011 à 14:08:42    

Bonjour, j'ai tenté de me lancer dans la parte 1, mais ce message d'erreur apparaît :  
 
ffmpeg version N-34318-g8475ec1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Oct 31 2011 17:57:19 with gcc 4.6.1
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3
 --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --e
nable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable
-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libsc
hroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-l
ibvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxa
vs --enable-libxvid --enable-zlib
  libavutil    51. 22. 0 / 51. 22. 0
  libavcodec   53. 26. 0 / 53. 26. 0
  libavformat  53. 18. 0 / 53. 18. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 45. 3 /  2. 45. 3
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpegts @ 0000000000497E40] parser not found for codec dvb_teletext, packets or
times may be invalid.

[h264 @ 000000000049E050] non-existing PPS referenced
[h264 @ 000000000049E050] non-existing PPS 0 referenced
[h264 @ 000000000049E050] decode_slice_header error
[h264 @ 000000000049E050] no frame!
[h264 @ 000000000049E050] non-existing PPS referenced
[h264 @ 000000000049E050] non-existing PPS 0 referenced
[h264 @ 000000000049E050] decode_slice_header error
[h264 @ 000000000049E050] no frame!
[aac @ 00000000004C19D0] channel element 3.1 is not allocated

 
 
Une idée d'où ça peut provenir ?


Message édité par cyr99 le 02-11-2011 à 14:09:36
Reply

Marsh Posté le 02-11-2011 à 14:23:42    

J'ai essayé en 32 bits, c'est encore plus rigolo, mais cette fois ça a l'air de fonctionner (?)
 
ffmpeg version N-34318-g8475ec1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Oct 31 2011 17:52:22 with gcc 4.6.1
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3
 --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --e
nable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable
-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libsc
hroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-l
ibvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxa
vs --enable-libxvid --enable-zlib
  libavutil    51. 22. 0 / 51. 22. 0
  libavcodec   53. 26. 0 / 53. 26. 0
  libavformat  53. 18. 0 / 53. 18. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 45. 3 /  2. 45. 3
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpegts @ 02448920] parser not found for codec dvb_teletext, packets or times ma
y be invalid.
[h264 @ 024510A0] non-existing PPS referenced
[h264 @ 024510A0] non-existing PPS 0 referenced
[h264 @ 024510A0] decode_slice_header error
[h264 @ 024510A0] no frame!
[h264 @ 024510A0] non-existing PPS referenced
[h264 @ 024510A0] non-existing PPS 0 referenced
[h264 @ 024510A0] decode_slice_header error
[h264 @ 024510A0] no frame!
[aac @ 02465F40] channel element 3.1 is not allocated
[h264 @ 024510A0] non-existing PPS referenced
[h264 @ 024510A0] non-existing PPS 0 referenced
[h264 @ 024510A0] decode_slice_header error
[h264 @ 024510A0] no frame!
[h264 @ 024510A0] non-existing PPS referenced
[h264 @ 024510A0] non-existing PPS 0 referenced
[h264 @ 024510A0] decode_slice_header error
[h264 @ 024510A0] no frame!
[h264 @ 024510A0] non-existing PPS referenced
[h264 @ 024510A0] non-existing PPS 0 referenced
[h264 @ 024510A0] decode_slice_header error
[h264 @ 024510A0] no frame!
[h264 @ 024510A0] non-existing PPS referenced
[h264 @ 024510A0] non-existing PPS 0 referenced
[h264 @ 024510A0] decode_slice_header error
[h264 @ 024510A0] no frame!
[h264 @ 024510A0] non-existing PPS referenced
[h264 @ 024510A0] non-existing PPS 0 referenced
[h264 @ 024510A0] decode_slice_header error
[h264 @ 024510A0] no frame!
[mpegts @ 02448920] max_analyze_duration 5000000 reached at 5013333
[mpegts @ 02448920] PES packet size mismatch
    Last message repeated 1 times
Input #0, mpegts, from 'C:\Users\Cyrille_utilisateur\Videos\France 2 - Hitler.m2
ts':
  Duration: 02:19:59.52, start: 22746.263522, bitrate: 4956 kb/s
  Program 40137
    Stream #0:0[0x44]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 144
0x1080 [SAR 4:3 DAR 16:9], 26.24 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x45]: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, s1
6, 132 kb/s
    Stream #0:2[0x46](fra): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
At least one output file must be specified

Reply

Marsh Posté le 03-11-2011 à 11:15:31    

après plusieurs tentatives ça a fini par fonctionner en retirant la commande -alang fra  qui n'est pas reconnue chez moi (Built on Oct 31 2011 17:52:22)
 
Par contre je trouve que -crf 27 crée beaucoup d'artefacts sur une video hd, même à 21-22 on en voit apparaître.
 
Je suis parti d'une video m2ts (4,84 Go) que je voulais juste raccourcir au début et à la fin, j'ai du mal à obtenir un mkv qui ne dépasse pas la taille de l'original (rien que le m4v fait dans les 4,8 Go  avec -crf 20)

Reply

Marsh Posté le 31-01-2012 à 00:04:58    

Hi,
je viens de suivre ce fabuleux post d'expérience car je voudrai moi aussi récupérer et transformer les videos de ma freebox mais je me heurte à une erreur (après moults essais! :fou: ) liée aux option -ss et -t.
 
Voici ma ligne de commande :
C:\FFmpeg\bin>ffmpeg.exe -ss 00:00:30 -i "d:\temp\mavideo.m2ts" -threads 0 -an -sn -vcodec libx264 -profile high -preset faster -crf 27 –vf yadif=0:-1,crop=720:560:0:10,scale=1920:1080,setdar=16:9,format=yuv420p -qmin 10 -t 00:15:00 -x264opts videoformat=pal -y "d:\temp\monfilm.m4v"  
 
ou
 
C:\FFmpeg\bin>ffmpeg.exe -ss 30 -i "d:\temp\mavideo.m2ts" -threads 0 -an -sn -vcodec libx264 -profile high -preset faster -crf 27 –vf yadif=0:-1,crop=720:560:0:10,scale=1920:1080,setdar=16:9,format=yuv420p -qmin 10 -t 1000 -x264opts videoformat=pal -y "d:\temp\monfilm.m4v"  
 
fini en erreur :
Press [q] to stop, [?] for help
[mpegts @ 0003AFE0] PES packet size mismatch
[h264 @ 017B52E0] error while decoding MB 0 24, bytestream (td)
[h264 @ 017B52E0] concealing 589 DC, 589 AC, 589 MV errors
frame=    0 fps=  0 q=0.0 Lsize=       0kB time=00:00:00.00 bitrate=   0.0kbits/s
video:0kB audio:0kB global headers:0kB muxing overhead 561.538462%

 
Lorsque je lance la commande sans les options -ss et -t
Le traitement se lance enfin ... :)  
Avez-vous des retours d'expérience là-dessus ?
Merci.

Reply

Marsh Posté le 05-02-2012 à 12:23:57    

Tuto vraiment sympa merci :d
 
pour ma part j'ai fait un petit script pour linux :) encodage mp4 avec son aac
 
#!/bin/bash
# name: toX264.sh
FILE=$1
 
## extrait le son du fichier
mplayer -ao pcm:fast -vc null -vo null "$FILE"
ou
ffmpeg -i "$FILE" -threads 0 -acodec pcm_s16le -ac 2 -ar 48000 -ac 2 -alang fra -vn -y "audiodump.wav"  
 
## convertie le son en aac
faac --mpeg-vers 4 -b 256 audiodump.wav
 
 
# convertie la vidéo seule
 
ffmpeg -i "$FILE" -threads 0 -an -sn -vcodec libx264 -profile high -preset faster -crf 15 -vf yadif=0:-1,scale=1280:720,setdar=16:9,format=yuv420p -qmin 10 -alang fra -x264opts videoformat=pal -y "output.m4v"
 
 
##  remixage de la video et de l'audio Sortie MP4
MP4Box -add audiodump.aac -add output.m4v "$FILE"_1280x720.mp4
# nettoyage
rm output.m4v
rm audiodump.wav
rm audiodump.aac

 
a c/c dans un fichier texte et nommé par exemple toX264.sh
 
ensuite en console :
 
sh toX264.sh mavideo.m2t
 
 
au niveau dependance installer
mplayer http://www.mplayerhq.hu
 
gpac  http://gpac.wp.institut-telecom.fr/
 
faac http://www.audiocoding.com/
 
en général ses packages sont dans les dépôts de tout les distributions linux


Message édité par MandrivTux le 08-02-2012 à 23:39:27
Reply

Marsh Posté le 08-02-2012 à 23:27:08    

bdomi49 a écrit :


 
Ma bande son original est en 6canaux à 256Kbits, je voulais la réduire à 2 canaux stéréo et à 192Kbit. Petite taille.
Quand à l'AAC, ffmpeg ne le gère pas très bien (strict experimental), j'ai eu des soucis avec et la qualité laisse à désirer. Donc, je conserve l'ac3 (note : même compression que l'aac).
 
Pour le décélage, bien évidemment, on peut tester la partie audio et vidéo sur quelques secondes en y ajoutant -t 300 (5 minutes) afin de ne pas recoller l'ensemble de la vidéo. En effet !


 
faut utiliser faac pour le aac http://www.audiocoding.com/faac.html
version pour windows  http://www.mediafire.com/?njjuuin2yxy
comme suit:
 
ffmpeg -i mavideo.m2t -threads 0 -acodec pcm_s16le -ac 2 -ar 48000 -ac 2 -alang fra -vn -y "output.wav"
ensuite
faac --mpeg-vers 4 -b 256 output.wav
 
ce qui donne un output.aac a256k de bitrate


Message édité par MandrivTux le 08-02-2012 à 23:34:05
Reply

Marsh Posté le 06-07-2012 à 22:09:23    

il y a encore beaucoup + simple sans démuxer et remuxer avec TSDoctor et Multiavchd
 
le décalage du son en convertissant de la TNT HD en AVCHD ou BD
le décalage du son apparait systématiquement après les pubs de format audio différents et les  frames défectueuses.
pour résoudre cela je coupe les pubs avec TSDoctor (qui les détecte) et découpe en tronçons numérotés une seconde après chaque début après la pub puis par principe, si des erreurs de frame ont été détectées , je coupe encore une seconde après chaque erreur, Le résultat est nickel avec MultiAVCHD en regroupant les troncons, le décalage n'est plus perceptible et les troncons s'enchainent parfaitement. Et on conserve la qualité de son originale sans remuxer le son EAC3 en AC3. et même conserver plusieurs pistes son. j'ai fait des BD et des AVCHD mais je n'ai pas tenté la conversion en avi ni en mkv.
La seule contrainte est de répéter le découpage autant de fois que de tronçons, mais TSDoctor affiche la milliseconde.

Reply

Marsh Posté le 11-07-2012 à 00:08:03    

Antoche a écrit :

Hi,
je viens de suivre ce fabuleux post d'expérience car je voudrai moi aussi récupérer et transformer les videos de ma freebox mais je me heurte à une erreur (après moults essais! :fou: ) liée aux option -ss et -t.
 
Voici ma ligne de commande :
C:\FFmpeg\bin>ffmpeg.exe -ss 00:00:30 -i "d:\temp\mavideo.m2ts" -threads 0 -an -sn -vcodec libx264 -profile high -preset faster -crf 27 –vf yadif=0:-1,crop=720:560:0:10,scale=1920:1080,setdar=16:9,format=yuv420p -qmin 10 -t 00:15:00 -x264opts videoformat=pal -y "d:\temp\monfilm.m4v"  
 
ou
 
C:\FFmpeg\bin>ffmpeg.exe -ss 30 -i "d:\temp\mavideo.m2ts" -threads 0 -an -sn -vcodec libx264 -profile high -preset faster -crf 27 –vf yadif=0:-1,crop=720:560:0:10,scale=1920:1080,setdar=16:9,format=yuv420p -qmin 10 -t 1000 -x264opts videoformat=pal -y "d:\temp\monfilm.m4v"  
 
fini en erreur :
Press [q] to stop, [?] for help
[mpegts @ 0003AFE0] PES packet size mismatch
[h264 @ 017B52E0] error while decoding MB 0 24, bytestream (td)
[h264 @ 017B52E0] concealing 589 DC, 589 AC, 589 MV errors
frame=    0 fps=  0 q=0.0 Lsize=       0kB time=00:00:00.00 bitrate=   0.0kbits/s
video:0kB audio:0kB global headers:0kB muxing overhead 561.538462%

 
Lorsque je lance la commande sans les options -ss et -t
Le traitement se lance enfin ... :)  
Avez-vous des retours d'expérience là-dessus ?
Merci.


 
perso je met au debut les options -ss et -t comme suit:
 
ffmpeg -ss 00:00:00 -t 00:10:00  -i "mavideo.m2ts"  etc ...
 

Reply

Marsh Posté le 26-03-2014 à 13:29:45    

Salut,
 
Perso, j'encode directement en utilisant x264.exe, pas la librairie associée de FFMPEG, et les résultats sont légèrement meilleurs en terme de qualité, sachant que je fais du bitrate moyen en 1 seule pass, à partir d'une source TS contenant du mpeg2 SD.
 

Code :
  1. x264 -i <ts source> --bitrate 2000 --fps 25 --level 4.0 -y <ts destination>


 
J'obtient en gros des fichiers vidéo de 2 Go pour 2h, qu'on a du mal à différencier de l'original tant x264 est puissant, même avec les options par défaut.
 
pour le son, par contre, ffmpeg.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed