IKKO, lecteur MP4 et linux

Vous voyez dans une vitrine un lecteur MP4 pas cher (fabriqué en Chine). Culpabilisé par le prix mais alléché, vous achetez ce truc et vous essayez d’encoder une video. Déception intense: pas de documentation, une video d’exemple et un convertisseur AVIconverter spécial WinXP et qui de toute façon ne marche pas. Après avoir épluché pendant une heure la doc de mencoder et fait (croyez vous) une copie conforme en terme de format de la video d’exemple (pour obtenir le format:

mplayer -vo null -ao null -frames 0 -identify FICHIERAREGARDER.avi)

vous envisagez le marteau (toujours à coté au cas où :slightly_smiling:). Bon, vous vous dites, tiens AVIconverter est à base de mencoder (Info google). Un petit

apt-get install wine

suivi d’un wine Convertisseur.exe
installe le convertisseur et ce qu’il faut dans .wine et lance le convertisseur. En démarrant une conversion (qui échouera bien sûr, en l’occurrence, elle n’a même pas commencé) sous wine, et en faisant pendant le même temps un

puis grep mencoder /tmp/command, vous obtenez

(Oui, j’aime bien ce rap de Kamini :slightly_smiling:)
Et là, joie, bonheur vous avez tous les paramètres pour faire l’encodage video pour ce IKKO de m…e (vous vous apercevez que l’option expand=320:240:-1:-1:1 semble être fondamentale, c’est celle que vous n’avez pas trouvée). Vous écrivez alors un superbe script:

#!/bin/sh mencoder $FILM -ofps 20 -vf-add scale=320:240 -vf-add expand=320:240:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=$BITRATE:max_bframes=0:quant_type=h263:me_quality=4 -oac lavc -lavcopts acodec=mp2:abitrate=128 -o S_$1

et voilà, vous avez un convertisseur Video->AVI spécial IKKO avec la joie qu’il encode une video en 20mn alors que vous lisez sur tous les forums que les pauvres Windowsiens mettent plusieurs heures.

Voilà, c’est adaptable sur n’importe quelle chinoiserie MP4 d’après ce que j’ai vu sur les forums…

Après de multiples tentatives infructueuses de conversion de vidéo pour mon lecteur (pas de la même marque que toi, mais un lecteur chinois sûrement tout aussi pas cher que le tien), je tombe sur ton post. Ta commande marche parfaitement pour moi.
Donc merci !!!

Je ne l’ai pas utilisé en script mais en ligne de commande.
Par contre, il y a qqchose que je ne comprends pas (donc petite question qui te paraitra peut-être stupide) : je vois bien que $1 c’est le premier argument passé à l’appel du script mais je ne vois pas comment tu passes $FILM et $BITRATE.

Tu pourrais m’expliciter comment tu appelles ton script ?

[quote=“teasxc”]Après de multiples tentatives infructueuses de conversion de vidéo pour mon lecteur (pas de la même marque que toi, mais un lecteur chinois sûrement tout aussi pas cher que le tien), je tombe sur ton post. Ta commande marche parfaitement pour moi.
Donc merci !!!

Je ne l’ai pas utilisé en script mais en ligne de commande.
Par contre, il y a qqchose que je ne comprends pas (donc petite question qui te paraitra peut-être stupide) : je vois bien que $1 c’est le premier argument passé à l’appel du script mais je ne vois pas comment tu passes $FILM et $BITRATE.

Tu pourrais m’expliciter comment tu appelles ton script ?[/quote]
Depuis une ligne de commande, tu peux écrire:~$ FILM='/home/moi/film.avi' BITRATE=640 /home/moi/scripts/nom-de-ce-script sortie.mp4ou bien réécrire le script à ta sauce:#!/bin/sh FILM=$1 BITRATE=$2 SORTIE=$3 mencoder "$1" -ofps 20 -vf-add scale=320:240 -vf-add expand=320:240:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=$2:max_bframes=0:quant_type=h263:me_quality=4 -oac lavc -lavcopts acodec=mp2:abitrate=128 -o "$3"~$ ./script-name original.avi 640 copie.mp4:slight_smile:

Oubli dans le script, je procédais comme dit tukuyomi. Maintenant j’utilise

[code]#!/bin/sh
FILM=$1
BITRATE=350
#mencoder -noodml $FILM \

-of avi \

-ovc xvid \

-xvidencopts bitrate=$BITRATE:max_bframes=0:quant_type=h263 \

-oac lavc -lavcopts acodec=mp2:abitrate=128 \

-ofps 20 \

-vf-add scale=320:240 \

-srate 44100 \

-ffourcc XVID -o S_$FILM

-ofps 20

-oac mp3lame -lameopts br=128:q=0 \

if [ -z $2 ] ; then
mencoder $FILM -ofps 20 -vf-add scale=320:240 -vf-add expand=320:240:-1:-1:1 -srate 44100 -ovc xvid
-xvidencopts bitrate=$BITRATE:max_bframes=0:quant_type=h263:me_quality=4
-oac lavc -lavcopts acodec=mp2:abitrate=128 -o S_$1
else
SSTITRES=$2
mencoder $FILM -sub $2 -ffactor 10 -subfont-autoscale 1 -subfont-encoding unicode -subcp latin1 -ofps 20
-vf-add scale=320:240 -vf-add expand=320:240:-1:-1:1 -srate 44100 -ovc xvid
-xvidencopts bitrate=$BITRATE:max_bframes=0:quant_type=h263:me_quality=4
-oac lavc -lavcopts acodec=mp2:abitrate=128 -o S_$1
fi[/code]
(premier argument le film, deuxième argument optionnel les sous titres) et éventuellement

[code]#!/bin/sh
FILM=$1
#BITRATE=500
BITRATE=350
#ASPECT=4/3
#mencoder -noodml $FILM \

-of avi \

-ovc xvid \

-xvidencopts bitrate=$BITRATE:max_bframes=0:quant_type=h263 \

-oac lavc -lavcopts acodec=mp2:abitrate=128 \

-ofps 20 \

-vf-add scale=320:240 \

-srate 44100 \

-ffourcc XVID -o S_$FILM

-ofps 20

-oac mp3lame -lameopts br=128:q=0 \

if [ -z $2 ] ; then
mencoder $FILM -ofps 20 -vf-add scale=320:180 -vf-add expand=320:240:-1:29:1 -srate 44100
-ovc xvid -xvidencopts bitrate=$BITRATE:max_bframes=0:quant_type=h263:me_quality=4
-oac lavc -lavcopts acodec=mp2:abitrate=128 -o S_$1
else
SSTITRES=$2
mencoder $FILM -sub $2 -ffactor 10 -subfont-autoscale 1 -subfont-encoding unicode -subcp latin1
-ofps 20 -vf-add scale=320:180 -vf-add expand=320:240:-1:29:1 -srate 44100
-ovc xvid -xvidencopts bitrate=$BITRATE:max_bframes=0:quant_type=h263:me_quality=4
-oac lavc -lavcopts acodec=mp2:abitrate=128 -o S_$1
fi[/code]
pour les films 16/9

Je me permet d’apporter ma modeste contribution…
J’ai aussi une chinoiserie (cpu: anyka AK3631 avec un écran 320x240). Pour éviter les saccades au maximum, je me suis fait un script qui comprend la commande suivante pour la conversion du fichier video :

ça marche pas mal mais probablement y a t-il d’autre amélioration à apporter

nana