mencoder et Linux Mint

Le
Hugolino
Yo!!

Depuis deux mois (suite à l'échange du disque de mon portable),
j'utilise avec bonheur Linux Mint Nadia (la 14ème version de cette
distro).
Tout roxe comme dans un rève et je tiens d'ailleurs à signaler que c'est
la première distro (après une Fedora 14 ou 15 qui avait rapidement
dégagée et une Arch Linux tout à fait correcte) qui pilote sans aucun
problème mon chipset Wifi (un Ralink RT3090).

Tout roxe ? Non, un petit village résiste encore à l'envahisseur : le
logiciel mencoder me contraint à de pénibles circonvolutions.

En tout cas avec les vidéos issues de ma Freebox V6 : alors qu'avec Arch
Linux, je n'avais pas de problème, il m'est devenu impossible de
commencer la lecture (et aussi l'encodage d'une vidéo) en utilisant
l'option '-ss' :

mplayer -ss 00:03:00 ze_video_file.m2ts censé commencer la lecture
après la 3ème minute de la vidéo, commence systématiquement au début du
fichier.

En général, je réencode d'abord le son en mp3 avec une commande qui
ressemble à ça:
mencoder ze_video_file.m2ts -ovc copy -oac mp3lame -lameopts abr:br–
-o ze_video_file_mp3.m2ts

Avec Arch Linux, je pouvais découper cette vidéo en plusieurs morceaux.
Pour supprimer la pub des films enregistrés, pour supprimer les quelques
minutes de "garde" au début ou à la fin de l'enregistrement.
Mais sous Linux Mint, c'est devenu impossible : passer l'option "-ss
HH:MM:SS" à mplayer ou mencoder quand je relis le résultat de l'encodage
du son (soit le fichier 'ze_video_file_mp3.m2ts') est sans aucun effet,
ça commence au début du fichier.
De même, me déplacer à l'intérieur de ce fichier avec les flèches "Page
Up" (+10 min.) ou "Flèche droite" (+1 min.), m'envoie à la fin du
fichier et coupe donc la lecture. Et ajouter l'option '-idx' lors de la
lecture avec mplayer (ou '-forceidx' lors de l'encodage) est sans effet.

Je suis donc contraint de fabriquer un avi (codecs mpg4 et mp3) en
réencodant tout le fichier dans son entièreté pour effectuer seulement
ensuite le découpage pour supprimer les quelques minutes de garde ou la
pub.
Mais il apparaît alors d'autres phénomènes : un décalage du son que
j'essaye de régler en tatonnant avec '-delay' et une impossibilité de me
positionner à l'exact endroit voulu avec '-ss HH:MM:SS', tant et si bien
que je suis contraint de chercher l'instant où commencer par dichotomie:
mencoder -ss 00:04:00 -> ah, chitte phoque : trop tôt
mencoder -ss 00:08:00 -> ah, chitte phoque : trop tard
mencoder -ss 00:06:00 -> ah, chitte phoque : trop tôt
mencoder -ss 00:07:00 -> ah, chitte phoque : trop tard
mencoder -ss 00:06:30 -> ah, chitte phoque : trop tard
mencoder -ss 00:06:15 -> ah, chitte phoque : trop tôt
mencoder -ss 00:06:22 -> ah, chitte phoque : trop tôt
mencoder -ss 00:06:26-> ah, chitte phoque : trop tard
mencoder -ss 00:06:24-> ah, chitte phoque : trop tôt
mencoder -ss 00:06:25-> Good !!

Ça pourrait amuser, mais en fait ça lasse assez rapidement.

Dernier truc, une fois mes "index temporels" correctement (et vous
l'aurez compris 'pifométriquement') déterminés, on pourrait croire qu'il
suffit de découper mes fichiers avec "-ovc copy -oac copy" Bin non,
je suis systématiquement contraint de réencoder le son en '-ovc
mp3lame' alors que puisque c'est la première chose que je fais, ça
devrait être parfaitement inutile
Ce message commençant à devenir un poil indigeste, j'abrège là


Merci de vos avis, commentaire, commencements de solutions


--
No animals were harmed and no Microsoft products were used in the production
of this message.
Hugo (né il y a 1 542 625 599 secondes)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas George
Le #25278372
Hugolino , dans le message
Tout roxe ? Non, un petit village résiste encore à l'envahisseur : le
logiciel mencoder me contraint à de pénibles circonvolutions.



mencoder n'est plus maintenu depuis des années. À part si tu utilises des
fonctionnalités spécifiques (de nos jours, je dirais : lecture directe de
DVD et extraction de VOBSUB), il vaut mieux que tu utilises ffmpeg.

Et un vrai ffmpeg, de préférence récent, pas un avconv.
Hugolino
Le #25278462
Le 13-03-2013, Nicolas George
Hugolino , dans le message

> Tout roxe ? Non, un petit village résiste encore à l'envahisseur :
> le logiciel mencoder me contraint à de pénibles circonvolutions.

mencoder n'est plus maintenu depuis des années.



Ah ? (binmerdalor).

À part si tu utilises des fonctionnalités spécifiques (de nos jours,
je dirais : lecture directe de DVD et extraction de VOBSUB), il vaut
mieux que tu utilises ffmpeg.

Et un vrai ffmpeg, de préférence récent, pas un avconv.



Je note, mais puisque j'ai mes petites habitudes avec mencoder, n'y
aurait-il pas une échappatoire à utiliser la version de Marillat ?
(Je veux dire : ne serait-elle pas plus à jour (ou moins out of date) ?)

Merci.

--
T'as pas les chevilles qui enflent des fois ? Associer perl et "bon
programmeur" c'est original.


Merde, ça s'est vu :) Pfff, vous devenez de plus en plus difficiles à
coincer les gars :)
Nicolas George
Le #25279582
Hugolino , dans le message
Je note, mais puisque j'ai mes petites habitudes avec mencoder, n'y
aurait-il pas une échappatoire à utiliser la version de Marillat ?
(Je veux dire : ne serait-elle pas plus à jour (ou moins out of date) ?)



À ma connaissance, Christian Marillat package mais il ne développe pas. S'il
y a un fork de MPlayer où mencoder est activement maintenu, je ne suis pas
au courant (le soi-disant « mplayer2 » n'est pas dans ce cas puisqu'ils ont
carrément enlevé mencoder).
Tonton Th
Le #25279712
On 03/13/2013 06:57 PM, Nicolas George a dit:

mencoder n'est plus maintenu depuis des années. À part si tu utilises des
fonctionnalités spécifiques (de nos jours, je dirais : lecture directe de
DVD et extraction de VOBSUB), il vaut mieux que tu utilises ffmpeg.



J'ai pas mal de vieux scripts qui tournent depuis des années,
et que je songe donc à convertir vers ffmpeg. Existe-t-il un
tableau de correspondance entres les diverses options de ces
deux logiciels pour faciliter la transition ?


--
http://foo.bar.quux.over-blog.com/article-thsf-2013-114632120.html
Nicolas George
Le #25279702
Tonton Th , dans le message écrit :
J'ai pas mal de vieux scripts qui tournent depuis des années,
et que je songe donc à convertir vers ffmpeg. Existe-t-il un
tableau de correspondance entres les diverses options de ces
deux logiciels pour faciliter la transition ?



Je n'en connais pas, mais tu peux toujours montrer les options dont tu as
besoin. Surtout que de vieux scripts utilisent probablement des
constructions qui ne sont plus du tout optimales de nos jours.
Hugolino
Le #25283622
Le 14-03-2013, Nicolas George
Tonton Th , dans le message écrit :
> J'ai pas mal de vieux scripts qui tournent depuis des années,
> et que je songe donc à convertir vers ffmpeg. Existe-t-il un
> tableau de correspondance entres les diverses options de ces
> deux logiciels pour faciliter la transition ?

Je n'en connais pas, mais tu peux toujours montrer les options dont tu as
besoin. Surtout que de vieux scripts utilisent probablement des
constructions qui ne sont plus du tout optimales de nos jours.



Je jette en vrac:

Je passe ce script après avoir réencodé le son par 'mencoder -ovc copy
-oac mp3lame' sur un fichier obtenu par rippage d'un dvd par 'mplayer
-dumpstream' ou par enregistrement (en bas débit) d'une freebox.

Il y a certainement plein d'options critiquables, voire ineptes. J'ai
pourtant potassé pas mal de docs. Mais ça ne marche pas si mal, il n'y a
guère que les scènes très sombres qui posent problème.


8<-----------8<---------8<----------8<----------8<----------8<----------8<

#!/bin/sh

NORMAL=""
RED=""
GREEN=""
YELLOW=""
BLUE=""
MAGENTA=""
CYAN=""
WHITE=""

ZE_TITLE="Wall-E"
ZE_TITLE_MP3=$ZE_TITLE"_mp3.avi"
#ZE_TITLE_AVI_pass2=$ZE_TITLE"_pass2.avi"
ZE_TITLE_AVI=$ZE_TITLE"_re-enc.avi"

CROPPING="Y"
CROP_WIDTH="704"
CROP_WIDTH_OFFSET="8"
CROP_HEIGHT="560"
CROP_HEIGHT_OFFSET="8"

SCALE_WIDTH="624"
SCALE_HEIGHT="352"

BITRATE="950"

#LANGUAGE="-aid 129"
LANGUAGE=""

echo ${RED}
echo " |-----------|"
echo " -=-=-| rip-movie |-=-=-"
echo " |-----------|"

echo
echo ${WHITE}" Title of ze movie : ${CYAN}$ZE_TITLE"
echo


Secondes_Debut=$(date +%s)

rm -rf divx2pass.log

echo ${RED}
if [ $CROPPING = "Y" ]
then
time mencoder $ZE_TITLE_MP3 ${LANGUAGE} -o /dev/null -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq=4:v4mv:vmax_b_frames=2:vb_strategy=2:turbo:vpass=1 -vf crop=$CROP_WIDTH:$CROP_HEIGHT:$CROP_WIDTH_OFFSET:$CROP_HEIGHT_OFFSET,scale=$SCALE_WIDTH:$SCALE_HEIGHT
else
time mencoder $ZE_TITLE_MP3 ${LANGUAGE} -o /dev/null -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq=4:v4mv:vmax_b_frames=2:vb_strategy=2:turbo:vpass=1 -vf scale=$SCALE_WIDTH:$SCALE_HEIGHT
fi

echo
echo ${WHITE}
date
echo -n ${CYAN}" "$ZE_TITLE" : "
echo ${RED}"passe 1 terminée"
echo
echo
cp divx2pass.log $ZE_TITLE"_01_divx2pass.log"




echo ${CYAN}
if [ $CROPPING = "Y" ]
then
time mencoder $ZE_TITLE_MP3 ${LANGUAGE} -o $ZE_TITLE_AVI -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq=4:v4mv:mbd=2:trell:cbp:last_pred=3:predia=2:dia=2:preme=2:vmax_b_frames=2:vqmin=2:precmp=2:cmp=2:subcmp=2:vbitrate=$BITRATE:vpass=2 -vf crop=$CROP_WIDTH:$CROP_HEIGHT:$CROP_WIDTH_OFFSET:$CROP_HEIGHT_OFFSET,scale=$SCALE_WIDTH:$SCALE_HEIGHT
else
time mencoder $ZE_TITLE_MP3 ${LANGUAGE} -o $ZE_TITLE_AVI -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vhq=4:v4mv:mbd=2:trell:cbp:last_pred=3:predia=2:dia=2:preme=2:vmax_b_frames=2:vqmin=2:precmp=2:cmp=2:subcmp=2:vbitrate=$BITRATE:vpass=2 -vf scale=$SCALE_WIDTH:$SCALE_HEIGHT
fi

echo
echo ${WHITE}
date
echo -n ${CYAN}" "$ZE_TITLE" : "
echo ${MAGENTA}"passe 2 terminée"
echo
echo
cp divx2pass.log $ZE_TITLE"_02_divx2pass.log"


Secondes_Fin=$(date +%s)
Secondes="`expr 0$Secondes_Fin - 0$Secondes_Debut`"
AvgLoad=$(cut -d " " -f 2 /proc/loadavg)

echo
echo ${WHITE}" Encodage effectué en ${CYAN}$Secondes ${WHITE}secondes."
echo ${WHITE}" Charge machine moyenne ${CYAN}$AvgLoad ${WHITE}."


echo ${NORMAL}

8<-----------8<---------8<----------8<----------8<----------8<----------8<


Voilà

Toutes critiques bienvenues.


--
Two of the most famous products of Berkeley are LSD and Unix. I don't think
that this is a coincidence.
Hugo (né il y a 1 542 827 087 secondes)
Nicolas George
Le #25283862
Hugolino , dans le message
#LANGUAGE="-aid 129"



L'équivalent en ffmpeg est d'utiliser -map : un pour la vidéo, donc -map v
sauf dans les cas exceptionnels où il y a plusieurs pistes vidéo, et un pour
sélectionner la ou les pistes audio : -map '#129' il me semble.

time mencoder $ZE_TITLE_MP3 ${LANGUAGE} -o /dev/null



ffmpeg -i fichier-entrée options_d_encodage -f null -

-oac copy



-c:a copy

-ovc lavc -lavcopts vcodec=mpeg4:



-c:v mpeg4

vhq=4:



-mbd rd

(en fait, 4 n'est pas une valeur valable, il faudrait vérifier si ça a un
effet ; -mbd rd est valide pour l'actuel)

v4mv:



-flags +mv4

vmax_b_frames=2:



-bf 2

vb_strategy=2:



-b_strategy 2

turbo:



Celui-ci annule plein d'options, mais n'a pas de raccourci dans ffmpeg. Mais
cf. plus bas.

vpass=1



-flags +pass1

-vf crop=$CROP_WIDTH:$CROP_HEIGHT:$CROP_WIDTH_OFFSET:$CROP_HEIGHT_OFFSET,scale=$SCALE_WIDTH:$SCALE_HEIGHT



Rien à changer. Mais ffmpeg est capable d'utiliser des formules dans les
valeurs pour crop et scale, contrairement à mplayer.

mbd=2:



-mbd rd (redondant)

trell:



-trellis 1

cbp:



-mpv_flags +cbp_rd

last_pred=3:



-last_pred 3

predia=2:



-pre_dia_size 2

dia=2:



-dia_size 2

preme=2:



-preme 2

vqmin=2:



-qmin 2

precmp=2:



-precmp 2

cmp=2:



-cmp 2

subcmp=2:



-subcmp 2

vbitrate=$BITRATE:



-b 800k (ne pas oublier le k)

vpass=2



-flags +pass2

Après, sur le fond, on ne sait pas exactement quels sont tes objectifs, donc
c'est difficile de conseiller. Je vois un bitrate rond, donc arbitraire.
Dans ce cas, je conseillerais plutôt d'encoder à qualité fixée plutôt qu'à
bitrate fixé, ça rend globalement mieux et ça évite de faire deux passes.

Ensuite, tu ne dis pas tes raisons de choisir le codec. De nos jours, il
vaut mieux produire du H.264 avec x264, ce qui en plus est plus facile :

-c:v libx264 -preset veryslow -tune anime -crf 18

Et c'est fini. Il suffit de mettre un preset ou tune qui n'existe pas pour
avoir la liste ; plus c'est lent, plus le fichier sera petit pour une
qualité donnée. -crf règle la qualité, plus c'est petit meilleur c'est.

Selon les cas, tu peux ajouter -pix_fmt yuv444p : le résultat sera de
meilleure qualité, mais lisible avec moins de logiciels/matériels. Même
chose en allant en yuv444p10, mais là il faut ruser avec la compilation de
x264.

D'autre part, je remarque que tu ne désentrelaces pas. Si la source est un
DVD, ou n'importe quel contenu sur lequel tu vois un effet de râteau, il
vaut mieux le faire : il suffit d'ajouter yadif au tout début de la chaîne
de filtres.

Je conseille également de débruiter la vidéo, sauf si elle est déjà de très
très bonne qualité. Pour ça, ajouter hqdn3d à la fin de la chaîne de
filtres.
Hugolino
Le #25285412
Le 15-03-2013, Nicolas George
Hugolino , dans le message

> #LANGUAGE="-aid 129"

L'équivalent en ffmpeg est d'utiliser -map : un pour la vidéo, donc -map v
[...]



OK.
Mille mercis pour tous les équivalent que tu me donnes.
Ne reste plus qu'à se mettre au boulot (bien mâché par toi donc...)

Merci encore.


--
J'ai appris qu'il était question de mettre la gestion du système
solaire sous Linux, c'est Dieu qui va etre content.
Hugo (né il y a 1 542 929 610 secondes)
Publicité
Poster une réponse
Anonyme