Encodage video pour l’HTC Dream (G1) avec ffmpeg
Heureux possesseur d’un HTC Dream, un smartphone tournant sous Andoïd, je me suis heurté au problème de l’encodage des divx sous un format optimal : conteneur, taille, poids et framerate.
A ce sujet, la FAQ officielle suggère d’utiliser Avidemux avec le format auto “PSP (_H264)”, ce qui donne des résultats parfois illisibles (suivant la taille de la video d’origine), et de toutes façons bien trop lourd.
On peut trouver ici un tutoriel sur un encodage avec Handbrake/ffmpeg, je ne l’ai pas testé, mais il me semble proche de ce que je vous propose par la suite.
Je suis tombé sur le script androvideo qui, quelques modifs plus tard, est pour moi un parfait compromis poids/fluidité/vitesse d’encodage.
Mais commençons par installer l’indispensable, ffmpeg:
Il nous faut maintenant le script disponible ici. Le bitrate par défaut est un peu faible et donne des videos trop pixélisées, modifions-le de la façon suivante (début du script, modifs en rouge):
AUDIO_CHANNELS=”1″
AUDIO_SAMPLING_RATE=”16000″
AUDIO_BIT_RATE=”32000″
FRAME_RATE=”25”
BITRATE=”300k”
declare -a VIDEO_FILES # array to hold the files to covert
echo “Converting ${1}”
ffmpeg -i “$1″ -s “$RESOLUTION” -vcodec mpeg4 -b “$BITRATE” -acodec libfaac -ac 1 -ar “$AUDIO_SAMPLING_RATE” -r “$FRAME_RATE” -ab “$AUDIO_BIT_RATE” -aspect 3:2 “$1.mp4″
}
Pour l’utiliser:
$ androvideo chemin/vers/video.avi
Le script génère un fichier du nom de video.avi.mp4 que vous pouvez envoyer vers votre HTC. Attention, pas d’espace dans le chemin !
Selon l’article sur Handbrake cité plus haut, la valeur maxi de bitrate à ne pas dépasser serait 416. A vous d’affiner…
Il serait bien sûr idéal de modifier le script afin de calculer la taille optimale de la video.