Vous êtes ici :   Accueil » Conversion d'une vidéo TS en xvid sous linux
 
Prévisualiser...  Imprimer...  Imprimer la page...
Prévisualiser...  Imprimer...  Imprimer la section...
Electronique
Multimédia

 4833786 visiteurs

 19 visiteurs en ligne

Cet article décrit la méthode de conversion d'un fichier vidéo TS (issu dans mon cas de mon démodulateur satellite DM7020) vers du MPEG2, du Xvid ou de l'OggVorbis. J'utilise pour ce faire ProjectX (utilitaire en java) puis un script sous linux (utilisant transcode ou mencoder) en ligne de commande mais très simplement. Il y a juste à suivre.

La méthode décrite ici est l'adaptation d'une collecte sur des forums et fonctionne à merveille chez moi. Une de mes  sources est le forum Sandbox Team.

Le but n'est pas d'obtenir un fichier tenant sur un CD de 700Mo. Ce n'est pas ce que je recherche mais plutôt, une bonne qualité de film pour le plaisir des yeux tout en tenant moins de place. On peut ainsi mettre entre 4 et 5 films sur un DVD. La perte de qualité n'est pas palpable, on bénéficie simplement de l'algo plus performant du mp4.
 

Etape 1 : importation du fichier TS par le réseau depuis le démodulateur vers le PC


j'utilise une distribution linux Mandriva 2008 ONE avec l'environnement graphique KDE. Dans ce cas, je lance lance Konqueror puis je tappe mon url en ftp (ftp://192.168.1.4 correspondant à mon cas).  Saisir ensuite le login et le mot de passe . (Dans le cas d'une image Gemini, il s'agit par défaut de root et dreambox).
 
login sur dm7020

 Aller dans le répertoire /hdd/movie et transférez dans le répertoire de travail du PC le .TS correspondant au film à convertir. Une astuce pour éviter d'avoir à assembler plusieurs fichiers avec une ligne de commande est de déclarer la possibilité d'avoir des fichiers jusqu'à 4Go sur votre DM7020. Avec cette capacité, on a la place pour stocker un film sans problème (à moins que ce soit un peplum biggrin).

Autre info, le logiel VLC lit parfaitement les fichiers TS avec ses différentes bandes son.

Etape 2 : prérequis sur les outils de conversion

(cool Merci au bêta testeur Charles pour son aide à l'ellaboration de ces prérequis, il a essuyé les platres sur cet article cool)

Vérification que l'on peut faire du Xvid et du mp3 avec Mencoder en tappant les 2 lignes de commandes suivantes dans une console :
[monmon@localhost ~]$­­­­­­­­­­­ mencoder -ovc help
MEncoder 1.0-1.rc1.20plf2008.0-4.2.1 (C) 2000-2006 MPlayer Team
CPU: Genuine Intel(R) CPU           T2080  @ 1.73GHz (Family: 6, Model: 14, Stepping: 12)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
98 audio & 216 video codecs

Available codecs:
   copy     - frame copy, without re-encoding. Doesn't work with filters.
   frameno  - special audio-only file for 3-pass encoding, see DOCS.
   raw      - uncompressed video. Use fourcc option to set format explicitly.
   nuv      - nuppel video
   lavc     - libavcodec codecs - best quality!
   vfw      - VfW DLLs, read DOCS/HTML/en/encoding-guide.html.
   qtvideo  - QuickTime DLLs, currently only SVQ1/3 are supported.
   libdv    - DV encoding with libdv v0.9.5
   xvid     - XviD encoding
   x264     - H.264 encoding

[monmon@localhost ~]$­­­­­­­­­­­ mencoder -oac help
MEncoder 1.0-1.rc1.20plf2008.0-4.2.1 (C) 2000-2006 MPlayer Team
CPU: Genuine Intel(R) CPU           T2080  @ 1.73GHz (Family: 6, Model: 14, Stepping: 12)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
98 audio & 216 video codecs

Available codecs:
   copy     - frame copy, without re-encoding (useful for AC3)
   pcm      - uncompressed PCM audio
   mp3lame  - cbr/abr/vbr MP3 using libmp3lame
   lavc     - FFmpeg audio encoder (MP2, AC3, ...)
   twolame  - Twolame MP2 audio encoder
   faac     - FAAC AAC audio encoder

[monmon@localhost ~]$­­­­­­­­­­­

Vérification de la présence de mplex :
[monmon@localhost films]$­­­­­­­­­­ mplex
mjpegtools mplex-2 version 1.9.0 (2.2.7)
Usage: mplex [params] -o <output filename pattern> <input file>...
         %d in the output file name is by segment count
  where possible params are:
--verbose|-v num
  Level of verbosity. 0 = quiet, 1 = normal 2 = verbose/debug
--format|-f fmt
  Set defaults for particular MPEG profiles
  [0 = Generic MPEG1, 1 = VCD, 2 = user-rate VCD, 3 = Generic MPEG2,
   4 = SVCD, 5 = user-rate SVCD
   6 = VCD Stills, 7 = SVCD Stills, 8 = DVD with NAV sectors, 9 = DVD]
--mux-bitrate|-r num
  Specify data rate of output stream in kbit/sec
    (default 0=Compute from source streams)
--video-buffer|-b num [, num...]
  Specifies decoder buffers size in kB.  [ 20...2000]
--lpcm-params | -L samppersec:chan:bits [, samppersec:chan:bits]
--mux-limit|-l num
  Multiplex only num seconds of material (default 0=multiplex all)
--sync-offset|-O num ms|s|mpt
  Specify offset of timestamps (video-audio) in mSec
--sector-size|-s num
  Specify sector size in bytes for generic formats [256..16384]
--vbr|-V
  Force variable bit-rate video multiplexing
--cbr|-C
  Force constant bit-rate video multiplexing
--run-in|-R num
  Force a 'run-in' of exactly num frame intervals
--packets-per-pack|-p num
  Number of packets per pack generic formats [1..100]
--system-headers|-h
  Create System header in every pack in generic formats
--max-segment-size|-S size
  Maximum size of output file(s) in Mbyte (default: 0) (no limit)
--ignore-seqend-markers|-M
  Don't switch to a new output file if a  sequence end marker
  is encountered ithe input video.
--vdr-index|-i <vdr-index-filename>
  Generate a VDR index file with the output stream
--workaround|-W workaround [, workaround ]
--help|-?
  Print this lot out!
[monmon@localhost films]$­­­­­­­­­­


Dans le cas d'une mandriva 2008 ONE, tout est bon par défaut, reste à installer ProjectX. Pour ce faire, j'ai mis à jour mon système de packages à travers le site http://easyurpmi.zarb.org. Il suffit d'ajouter les sources du PLF. Pour l'utilisation d'Esayurpmi, suivre les instructions sur le site. Vous aurez ensuite un choix de packages important.

Procédez à l'installation du logiciel. Le gestionnaire de logiciel demande alors le système java souhaité pour compléter l'installation. Java est nécessaire à l'exécution de ProjectX. J'ai choisi la dernière version disponible au moment de l'article, soit la 1.7.0.

install


 

Etape 3 : démultiplexage et coupure des pubs à l'aide de ProjectX

On lance le logiciel directement dans le menu "son et video".

(
ou par la commande suivante en adaptant bien sûr le chemin vers  le .jar et la version pour les personnes n'étant pas sous Mandriva par exemple :
java -jar /home/monmon/temp/ProjectX/ProjectX-v0.90.03.01-20060201.jar
)

Allez dans le menu fichier et ouvrir le fichier TS concerné.

projectx

A l'aide de la fenêtre d'édition et des curseurs simple et double, choisir les parties à conserver. Les parties éliminées sont en rouge (voir la capture d'écran ci-dessus).

On lance alors directement le demultiplexage rapide. La fenêtre d'avancement donne son état :

projectx

 

Après démultiplexage, on obtient un fichier vidéo, un fichier de sous-titre si demandé et existant ; ainsi que les fichiers audio FR (et GB si existant) par exemple :
 
  • video.m2v
  • audio-eng.mp2
  • audio-fra.mp2
  • soutitre.srt
L'extension des fichiers audio est parfois .mpa. Adapter les noms de fichiers ou le script en fonction.


Dans l'exemple, nous avons le résultat suivant :


projectx

Nous sommes maintenant sortie de ProjectX et dans notre répertoire de travail, nous avons les fichiers souhaités ainsi que le script de conversion. On lance alors une console pour faire les "travaux manuels". Une astuce consiste à tapper F4 qui lance directement depuis Konqueror une console dans le répertoire en cours d'observation.

 

Etape 4 :  multiplexer la video avec les pistes audio souhaitées

  • choix du MPEG2

Ce choix permet de créer un fichier compatible DVD et donc traitable directement avec DVDStyler par exemple (mon cas). On utilise un des outils nombreux du groupe des mjpegtools. Pour simplifier la commande, j'ai renommé les fichiers video et audio en video.m2v et audio.mp2. Si vous utilisez des noms de fichiers avec des espaces, ajoutez des guillements encadrant les noms de fichiers.

 [monmon@localhost films]$­­­­­­­­ mplex -f 8 -V -o DVD_reportage.mpg video.m2v audio.mp2
   INFO: [mplex] mplex version 1.9.0 (2.2.7 $­­­­­­­­Date: 2006/02/01 22:23:01 $­­­­­­­­)
   INFO: [mplex] File video.m2v looks like an MPEG Video stream.
   INFO: [mplex] File audio.mp2 looks like an MPEG Audio stream.
   INFO: [mplex] Video stream 0: profile 8 selected - ignoring non-standard options!
   INFO: [mplex] Found 1 audio streams and 1 video streams
   INFO: [mplex] Selecting dvdauthor DVD output profile
   INFO: [mplex] Multiplexing video program stream!
   INFO: [mplex] Scanning for header info: Video stream e0 (video.m2v)
   INFO: [mplex] VIDEO STREAM: e0
   INFO: [mplex] Frame width     : 720
   INFO: [mplex] Frame height    : 576
   INFO: [mplex] Aspect ratio    : 4:3 display
   INFO: [mplex] Picture rate    : 25.000 frames/sec
   INFO: [mplex] Bit rate        : 6670000 bits/sec
   INFO: [mplex] Vbv buffer size : 229376 bytes
   INFO: [mplex] CSPF            : 0
   INFO: [mplex] Scanning for header info: Audio stream c0 (audio.mp2)
   INFO: [mplex] MPEG AUDIO STREAM: c0
   INFO: [mplex] Audio version  : 1.0
   INFO: [mplex] Layer          :        2
   INFO: [mplex] CRC checksums  :       no
   INFO: [mplex] Bit rate       :    32768 bytes/sec (256 kbit/sec)
   INFO: [mplex] Frequency      :     48000 Hz
   INFO: [mplex] Mode           :        0 stereo
   INFO: [mplex] Mode extension :        0
   INFO: [mplex] Copyright bit  :        1 copyright protected
   INFO: [mplex] Original/Copy  :        1 original
   INFO: [mplex] Emphasis       :        0 none
   INFO: [mplex] SYSTEMS/PROGRAM stream:
   INFO: [mplex] rough-guess multiplexed stream data rate    : 7075496
   INFO: [mplex] target data-rate specified               : 10080000
   INFO: [mplex] Setting specified specified data rate: 10080000
   INFO: [mplex] Run-in delay = 7200 Video delay = 7200 Audio delay = 10800
   INFO: [mplex] New sequence commences...
   INFO: [mplex] Video e0: buf=      0 frame=000000 sector=00000000
   INFO: [mplex] Audio c0: buf=      0 frame=000000 sector=00000000
   INFO: [mplex] Scanned to end AU 151609
   INFO: [mplex] STREAM e0 completed
   INFO: [mplex] STREAM c0 completed
   INFO: [mplex] Multiplex completion at SCR=545795510.
   INFO: [mplex] Video e0: completed
   INFO: [mplex] Audio c0: completed
   INFO: [mplex] VIDEO_STATISTICS: e0
   INFO: [mplex] Video Stream length:  2466335905 bytes
   INFO: [mplex] Sequence headers:     6502
   INFO: [mplex] Sequence ends   :        1
   INFO: [mplex] No. Pictures    :   151610
   INFO: [mplex] No. Groups      :     6502
   INFO: [mplex] No. I Frames    :     6502 avg. size 47319 bytes
   INFO: [mplex] No. P Frames    :    50863 avg. size 23186 bytes
   INFO: [mplex] No. B Frames    :    94245 avg. size 10391 bytes
   INFO: [mplex] Average bit-rate :  3253200 bits/sec
   INFO: [mplex] Peak bit-rate    :  6670400  bits/sec
   INFO: [mplex] BUFFERING min 15 Buf max 175715
   INFO: [mplex] AUDIO_STATISTICS: c0
   INFO: [mplex] Audio stream length 194060544 bytes.
   INFO: [mplex] Syncwords      :   252683
   INFO: [mplex] Frames         :   252683 padded
   INFO: [mplex] Frames         :        0 unpadded
   INFO: [mplex] BUFFERING min 15 Buf max 779
   INFO: [mplex] MUX STATUS: no under-runs detected.
[monmon@localhost films]$­­­­­­­­ 

Vérifiez la bonne synchronisation du son et de la video sur le fichier créé. On a alors les fichiers suivants :

projectx



Pour créer un fichier avec plusieurs bandes sons, ajouter le fichier audio supplémentaire au bout de la ligne de commande. Le fichier mpg créé permet de faire un DVD ou bien le xvid en suivant les instructions suivantes :
  • choix du XVID

Pour créer un XVID, utiliser le fichier MPEG2 avec une seule bande son (voir juste au-dessus) et appliquer le script faisant appel à mencoder.

script mon_xvid
#sbin convert
rm frameno.avi
mencoder "$­­­­­­­­­­­­1" -o frameno.avi -ovc frameno  -oac copy
rm xvid*.stats

#ATTENTION : pour les dernières versions de mencoder, remplacer -vop par -vf
mencoder "$­­­­­­­­­­­­1" -o /dev/null -of avi -ovc xvid  -xvidencopts vhq=1:bitrate=1200:pass=1 -vop scale=544:408 -passlogfile xvid.stats -ofps 25,0 -oac copy

#ATTENTION : pour les dernières versions de mencoder, remplacer -vop par -vf
mencoder "$­­­­­­­­­­­­1" -o xvid/"$­­­­­­­­­­­­1" -of avi -ovc xvid  -xvidencopts vhq=1:bitrate=1200:pass=2  -vop scale=544:408  -passlogfile xvid.stats -ofps 25,0 -oac mp3lame -lameopts br=128:q=9:aq=9:cbr:mode=1

Pour créer un script, utiliser votre éditeur préféré (kwrite par exemple) et ne pas oublier de rendre le fichier exécutable (dans Konqueror, faire un clic droit sur le fichier et coher la case "est exécutable" dans le deuxième onglet).

Il suffit alors de lancer la ligne de commande suivante :


[monmon@localhost films]$­­­­­­ ./mon_xvid "DVD_reportage.mpg"
rm: ne peut enlever `frameno.avi': Aucun fichier ou répertoire de ce type
MEncoder 1.0-1.rc1.20plf2008.0-4.2.1 (C) 2000-2006 MPlayer Team
CPU: Genuine Intel(R) CPU           T2080  @ 1.73GHz (Family: 6, Model: 14, Stepping: 12)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
98 audio & 216 video codecs
success: format: 0  data: 0x0 - 0xa1989800
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  6670.0 kbps (833.8 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.00  ftime:=0.0400
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 256.0 kbit/16.67% (ratio: 32000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
audiocodec: framecopy (format=50 chans=2 rate=48000 bits=16 B/s=32000 sample-1)
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Pos:   0.9s     22f ( 0%)  0.00fps Trem:   0min   0mb  A-V:0.084 [0:256]
Skipping frame!
Pos:   7.5s    188f ( 0%)  0.00fps Trem:   0min   0mb  A-V:0.080 [0:256]
Skipping frame!
Writing index...10f (100%) 1661.33fps Trem:   0min 186mb  A-V:0.036 [0:255]
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Recommended video bitrate for 650MB CD: 637
Recommended video bitrate for 700MB CD: 706
Recommended video bitrate for 800MB CD: 844
Recommended video bitrate for 2 x 650MB CD: 1536
Recommended video bitrate for 2 x 700MB CD: 1674
Recommended video bitrate for 2 x 800MB CD: 1951

Video stream:    0.800 kbit/s  (100 B/s)  size: 606432 bytes  6064.320 secs  151610 frames

Audio stream:  256.000 kbit/s  (31999 B/s)  size: 194059776 bytes  6064.368 secs
rm: ne peut enlever `xvid*.stats': Aucun fichier ou répertoire de ce type
MEncoder 1.0-1.rc1.20plf2008.0-4.2.1 (C) 2000-2006 MPlayer Team
CPU: Genuine Intel(R) CPU           T2080  @ 1.73GHz (Family: 6, Model: 14, Stepping: 12)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
98 audio & 216 video codecs
success: format: 0  data: 0x0 - 0xa1989800
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  6670.0 kbps (833.8 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.00  ftime:=0.0400
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 256.0 kbit/16.67% (ratio: 32000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
xvid: using library version 1.1.3 (build xvid-1.1.3)
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [scale w=544 h=408]
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 576 (preferred colorspace: Mpeg PES)
The selected video_out device is incompatible with this codec.
Try adding the scale filter, e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b
Selected video codec: [mpeg12] vfm: libmpeg2 (MPEG-1 or 2 (libmpeg2))
==========================================================================
audiocodec: framecopy (format=50 chans=2 rate=48000 bits=16 B/s=32000 sample-1)
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
SwScaler: reducing / aligning filtersize 7 -> 8
SwScaler: reducing / aligning filtersize 7 -> 8
SwScaler: reducing / aligning filtersize 7 -> 6
SwScaler: reducing / aligning filtersize 7 -> 6

SwScaler: BICUBIC scaler, from yuv420p to yuv420p using MMX2
SwScaler: using 8-tap MMX scaler for horizontal luminance scaling
SwScaler: using 8-tap MMX scaler for horizontal chrominance scaling
SwScaler: using n-tap MMX scaler for vertical scaling (YV12 like)
SwScaler: 720x576 -> 544x408
videocodec: XviD (544x408 fourcc=44495658 [XVID])
xvid: par=0/0 (vga11), displayed=544x408, sampled=544x408
xvid: bitrate setting is ignored during first pass
xvid: 2Pass Rate Control -- 1st pass
New_Face failed. Maybe the font path is wrong.n   0mb  A-V:0.004 [0:0]
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.040s.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.040s.

1 duplicate frame(s)!
Pos:   0.8s     22f ( 0%)  0.00fps Trem:   0min   0mb  A-V:0.084 [0:256]
Skipping frame!
Pos:   7.5s    191f ( 0%) 66.07fps Trem:   0min   0mb  A-V:0.080 [812:256]]
Skipping frame!
ODML: Starting new RIFF chunk at 1023MB.  24min 2129mb  A-V:0.043 [2695:256]
ODML: Starting new RIFF chunk at 2047MB.   1min 2126mb  A-V:0.044 [2691:256]
Pos:6064.2s 151610f (100%) 52.55fps Trem:   0min 2135mb  A-V:0.035 [2693:255]
Flushing video frames
Writing index...
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.040s.

Video stream: 2693.952 kbit/s  (336743 B/s)  size: 2042109697 bytes  6064.280 secs  151610 frames

Audio stream:  256.000 kbit/s  (31999 B/s)  size: 194059776 bytes  6064.368 secs
MEncoder 1.0-1.rc1.20plf2008.0-4.2.1 (C) 2000-2006 MPlayer Team
CPU: Genuine Intel(R) CPU           T2080  @ 1.73GHz (Family: 6, Model: 14, Stepping: 12)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
98 audio & 216 video codecs

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0  data: 0x0 - 0xa1989800
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  6670.0 kbps (833.8 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.00  ftime:=0.0400
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 256.0 kbit/16.67% (ratio: 32000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
xvid: using library version 1.1.3 (build xvid-1.1.3)
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [scale w=544 h=408]
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 576 (preferred colorspace: Mpeg PES)
The selected video_out device is incompatible with this codec.
Try adding the scale filter, e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b
Selected video codec: [mpeg12] vfm: libmpeg2 (MPEG-1 or 2 (libmpeg2))
==========================================================================
MP3 audio selected.
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
SwScaler: reducing / aligning filtersize 7 -> 8
SwScaler: reducing / aligning filtersize 7 -> 8
SwScaler: reducing / aligning filtersize 7 -> 6
SwScaler: reducing / aligning filtersize 7 -> 6

SwScaler: BICUBIC scaler, from yuv420p to yuv420p using MMX2
SwScaler: using 8-tap MMX scaler for horizontal luminance scaling
SwScaler: using 8-tap MMX scaler for horizontal chrominance scaling
SwScaler: using n-tap MMX scaler for vertical scaling (YV12 like)
SwScaler: 720x576 -> 544x408
videocodec: XviD (544x408 fourcc=44495658 [XVID])
xvid: par=0/0 (vga11), displayed=544x408, sampled=544x408
xvid: 2Pass Rate Control -- 2nd pass -- bitrate=1200kbit/s
New_Face failed. Maybe the font path is wrong.n   0mb  A-V:0.004 [0:0]
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.048s.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.048s.

1 duplicate frame(s)!
Pos:   0.8s     22f ( 0%) 20.33fps Trem:   0min   0mb  A-V:0.084 [0:128]
Skipping frame!
Pos:   1.1s     32f ( 0%) 25.04fps Trem:   0min   0mb  A-V:0.084 [361:127]
Skipping frame!
Pos:6064.2s 151610f (100%) 29.78fps Trem:   0min 959mb  A-V:0.043 [1194:128]
Flushing video frames


CBR audio: 16000 bytes/sec, 384 bytes/block
Writing index...
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.040s.

Video stream: 1194.569 kbit/s  (149321 B/s)  size: 905519063 bytes  6064.240 secs  151610 frames

Audio stream:  128.000 kbit/s  (16000 B/s)  size: 97029120 bytes  6064.320 secs
[monmon@localhost films]$­­­­­­ 


Remarque : le script donne un fichier xvid dans un sous répertoire xvid. Ne pas oublier de créer ce sous répertoire dans votre répertoire de travail. Renommer votre fichier avec la bonne extension (avi) pour pouvoir reconnaître le type de fichier au premier coup d'oeil car le script garde l'extension MPG. Une amélioration à apporter plus tard...

Etape 4bis : choix de l'OGGVORBIS

Dans ce cas, on n'a pas besoin de remultiplexer l'audio et la video. Cette méthode de compression permet de faire un mpeg4 avec plusieurs bandes son et le sous-titrage.

script mon_oog_fr
#!/bin/bash

usage() {
 echo "Usage: $­­­­­­­­­­­­­­­­­0 <filename without suffix> <title>"
 exit -1
}

if [[ $­­­­­­­­­­­­­­­­­1 == "" ]] || [[ $­­­­­­­­­­­­­­­­­2 == "" ]] ; then
 usage
fi

echo "Transcoding MPEG2 to OGM"

if [ ! -f "$­­­­­­­­­­­­­­­­­1-fra.mpa" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1-fra.mpa: file not found"
 exit -2
fi

#if [ ! -f "$­­­­­­­­­­­­­­­­­1-eng.mpa" ] ; then
# echo "$­­­­­­­­­­­­­­­­­1-eng.mpa: file not found"
# exit -2
#fi

if [ ! -f "$­­­­­­­­­­­­­­­­­1.m2v" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1.mpv: file not found"
 exit -3
fi

#if [ ! -f "$­­­­­­­­­­­­­­­­­1-fra.srt" ] ; then
# echo "$­­­­­­­­­­­­­­­­­1-fra.srt: file not found"
# exit -2
#fi

transcode -i "$­­­­­­­­­­­­­­­­­1-fra.mpa" -o "$­­­­­­­­­­­­­­­­­1-fra.ogg" -x null,mp3 -y null,ogg -b 0,1,6,0
#transcode -i "$­­­­­­­­­­­­­­­­­1-eng.mpa" -o "$­­­­­­­­­­­­­­­­­1-eng.ogg" -x null,mp3 -y null,ogg -b 0,1,6,0

transcode -i "$­­­­­­­­­­­­­­­­­1.m2v" -o /dev/null -x mpeg2 -y xvid4 -R 1
transcode -i "$­­­­­­­­­­­­­­­­­1.m2v" -o "$­­­­­­­­­­­­­­­­­1.xvid" -x mpeg2 -y xvid4 -R 2

#ogmmerge -o "$­­­­­­­­­­­­­­­­­1.ogm" -c TITLE="$­­­­­­­­­­­­­­­­­2" "$­­­­­­­­­­­­­­­­­1.xvid" -c LANGUAGE="Fran�ais" "$­­­­­­­­­­­­­­­­­1-fra.ogg" -c LANGUAGE="English" "$­­­­­­­­­­­­­­­­­1-eng.ogg" -c LANGUAGE="Fran�ais" "$­­­­­­­­­­­­­­­­­1-fra.srt"
ogmmerge -o "$­­­­­­­­­­­­­­­­­1.ogm" -c TITLE="$­­­­­­­­­­­­­­­­­2" "$­­­­­­­­­­­­­­­­­1.xvid" -c LANGUAGE="Fran�ais" "$­­­­­­­­­­­­­­­­­1-fra.ogg"

script mon_oog_fr_gb
#!/bin/bash

usage() {
 echo "Usage: $­­­­­­­­­­­­­­­­­0 <filename without suffix> <title>"
 exit -1
}

if [[ $­­­­­­­­­­­­­­­­­1 == "" ]] || [[ $­­­­­­­­­­­­­­­­­2 == "" ]] ; then
 usage
fi

echo "Transcoding MPEG2 to OGM"

if [ ! -f "$­­­­­­­­­­­­­­­­­1-fra.mpa" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1-fra.mpa: file not found"
 exit -2
fi

if [ ! -f "$­­­­­­­­­­­­­­­­­1-eng.mpa" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1-eng.mpa: file not found"
 exit -2
fi

if [ ! -f "$­­­­­­­­­­­­­­­­­1.m2v" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1.mpv: file not found"
 exit -3
fi

#if [ ! -f "$­­­­­­­­­­­­­­­­­1-fra.srt" ] ; then
# echo "$­­­­­­­­­­­­­­­­­1-fra.srt: file not found"
# exit -2
#fi

transcode -i "$­­­­­­­­­­­­­­­­­1-fra.mpa" -o "$­­­­­­­­­­­­­­­­­1-fra.ogg" -x null,mp3 -y null,ogg -b 0,1,6,0
transcode -i "$­­­­­­­­­­­­­­­­­1-eng.mpa" -o "$­­­­­­­­­­­­­­­­­1-eng.ogg" -x null,mp3 -y null,ogg -b 0,1,6,0

#transcode -i "$­­­­­­­­­­­­­­­­­1.mpv" -o /dev/null -z -x mpeg2 -y xvid4 -R 1
#transcode -i "$­­­­­­­­­­­­­­­­­1.mpv" -o "$­­­­­­­­­­­­­­­­­1.xvid" -z -x mpeg2 -y xvid4 -R 2

transcode -i "$­­­­­­­­­­­­­­­­­1.m2v" -o /dev/null -x mpeg2 -y xvid4 -R 1
transcode -i "$­­­­­­­­­­­­­­­­­1.m2v" -o "$­­­­­­­­­­­­­­­­­1.xvid" -x mpeg2 -y xvid4 -R 2

#ogmmerge -o "$­­­­­­­­­­­­­­­­­1.ogm" -c TITLE="$­­­­­­­­­­­­­­­­­2" "$­­­­­­­­­­­­­­­­­1.xvid" -c LANGUAGE="Fran�ais" "$­­­­­­­­­­­­­­­­­1-fra.ogg" -c LANGUAGE="English" "$­­­­­­­­­­­­­­­­­1-eng.ogg" -c LANGUAGE="Fran�ais" "$­­­­­­­­­­­­­­­­­1-fra.srt"
ogmmerge -o "$­­­­­­­­­­­­­­­­­1.ogm" -c TITLE="$­­­­­­­­­­­­­­­­­2" "$­­­­­­­­­­­­­­­­­1.xvid" -c LANGUAGE="Fran�ais" "$­­­­­­­­­­­­­­­­­1-fra.ogg" -c LANGUAGE="English" "$­­­­­­­­­­­­­­­­­1-eng.ogg"



script mon_oog_fr_gb_srt
#!/bin/bash

usage() {
 echo "Usage: $­­­­­­­­­­­­­­­­­0 <filename without suffix> <title>"
 exit -1
}

if [[ $­­­­­­­­­­­­­­­­­1 == "" ]] || [[ $­­­­­­­­­­­­­­­­­2 == "" ]] ; then
 usage
fi

echo "Transcoding MPEG2 to OGM"

if [ ! -f "$­­­­­­­­­­­­­­­­­1-fra.mpa" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1-fra.mpa: file not found"
 exit -2
fi

if [ ! -f "$­­­­­­­­­­­­­­­­­1-eng.mpa" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1-eng.mpa: file not found"
 exit -2
fi

if [ ! -f "$­­­­­­­­­­­­­­­­­1.m2v" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1.mpv: file not found"
 exit -3
fi

if [ ! -f "$­­­­­­­­­­­­­­­­­1-fra.srt" ] ; then
 echo "$­­­­­­­­­­­­­­­­­1-fra.srt: file not found"
 exit -2
fi

transcode -i "$­­­­­­­­­­­­­­­­­1-fra.mpa" -o "$­­­­­­­­­­­­­­­­­1-fra.ogg" -x null,mp3 -y null,ogg -b 0,1,6,0
transcode -i "$­­­­­­­­­­­­­­­­­1-eng.mpa" -o "$­­­­­­­­­­­­­­­­­1-eng.ogg" -x null,mp3 -y null,ogg -b 0,1,6,0

#transcode -i "$­­­­­­­­­­­­­­­­­1.mpv" -o /dev/null -z -x mpeg2 -y xvid4 -R 1
#transcode -i "$­­­­­­­­­­­­­­­­­1.mpv" -o "$­­­­­­­­­­­­­­­­­1.xvid" -z -x mpeg2 -y xvid4 -R 2

transcode -i "$­­­­­­­­­­­­­­­­­1.m2v" -o /dev/null -x mpeg2 -y xvid4 -R 1
transcode -i "$­­­­­­­­­­­­­­­­­1.m2v" -o "$­­­­­­­­­­­­­­­­­1.xvid" -x mpeg2 -y xvid4 -R 2

ogmmerge -o "$­­­­­­­­­­­­­­­­­1.ogm" -c TITLE="$­­­­­­­­­­­­­­­­­2" "$­­­­­­­­­­­­­­­­­1.xvid" -c LANGUAGE="Fran�ais" "$­­­­­­­­­­­­­­­­­1-fra.ogg" -c LANGUAGE="English" "$­­­­­­­­­­­­­­­­­1-eng.ogg" -c LANGUAGE="Fran�ais" "$­­­­­­­­­­­­­­­­­1-fra.srt"
 

Etape 5 : regarder le film

A ce stade, on a plus qu'à se régaler devant son petit écran (ou son grand écran, c'est encore mieux  biggrinrolleyes ).

 

Astuce :

Une autre astuce consiste à utiliser un petit script pour enchaîner toutes ces opérations à partir de l'étape 3, l'étape 2 n'étant pas automatisable puisqu'il faut couper le film et demande un minimum d'intelligence humaine. Je lance donc ces opérations "longues" suivant le type de processeurs la nuit et le PC se coupe quand les opérations de conversions sont finies.

Il suffit de préparer son fichier de script et ses fichiers audio/video démultiplexés. Voici en exemple un fichier de travail sur lequel je commente et dé-commente en fonction des besoins :

script fairefilms
#./mon_xvid "DVD_.mpg"
#./mon_ogg_fr_gb_srt TERMINATOR3 TERMINATOR3
#mplex -f 8 -V -o DVD_thegirlnextdoor.mpg video.m2v audio.mpa
#./mon_ogg_fr ATLANTIS ATLANTIS
#./mon_ogg_fr_gb Lesgrincheux Lesgrincheux
#mplex -f 8 -V -o DVD_leo.mpg leo.m2v leo.mpa
mplex -f 8 -V -o DVD_google.mpg video.m2v audio.mp2
#./mon_xvid "odysseeespece.mpg"
./mon_xvid "DVD_google.mpg"
#./mon_xvid "DVD_atlantis.mpg"
#shutdown -h now

Pour autoriser la coupure du PC, lancer la commande en tant que root : sudo ./fairefilms

Sinon ./fairefilms

Bonne conversion et bon visionnage puisque le but est quand même de se faire plaisir  biggrin

Date de création : 24/01/2008 @ 21:50
Dernière modification : 06/04/2011 @ 21:49
Catégorie : Multimédia - DM7020
Page lue 44364 fois
Précédent  


Réactions à cet article

Réaction n°1 

par Arnaud le 03/04/2008 @ 21:17

"SUPER" ton tutoriel, c'est pour accro de la console (enfin le clavier). Peux tu faire la meme chose rien qu'avec des clics de mulot ... comme sous WIN... (je fais attention a la censure).



Vous appréciez un article ?
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha reload
Recopier le code :
Vous êtes ici :   Accueil » Conversion d'une vidéo TS en xvid sous linux
 
Recherche
 
Texte à méditer :  Attention, un train peut en cacher un autre !! eek  Monmon