Créer un MP4 pour un player Flash avec streaming

23 04 2011

Si vous utilisez un player Flash pour lire des vidéos stockées sur votre site web (comme par exemple avec DewTube), voici un script à utiliser en ligne de commande pour Linux (testé sous Ubuntu 10.10) qui permet de préparer une vidéo au format MP4 avec tout le nécessaire pour qu’elle puisse être lue en streaming.

Prérequis

Il va vous falloir les paquetages suivants :

  • x264, pour l’encodage du flux vidéo,
  • faac, pour l’encodage du flux audio,
  • ffmpeg, pour le multiplexage et l’ajout des informations nécessaires au streaming (avec l’utilitaire qt-faststart).

Un petit tour dans Synaptic et l’affaire est dans le sac.

Le script a été conçu pour se satisfaire des versions fournies en standard dans les paquetages d’Ubuntu et ne nécessite donc pas la recompilation de ffmpeg pour lui ajouter le support du x264.

Un des avantages de x264 par rapport à une autre solution c’est qu’il est capable d’utiliser plusieurs cœurs/processeurs pour encoder la vidéo.

Le script

Il est plutôt simple à utiliser : toflashmp4 <video en entrée>

Le script va encoder la vidéo au format MP4 et remplacer l’extension de la vidéo par mp4.

L’encodage vidéo est la partie qui prend le plus de temps. L’encodage audio, le multiplexage, l’ajout des informations pour les streaming sont rapides.

Sa conception est des plus simples : il s’agit d’un enchaînement de commandes qui est interrompu dès qu’une des commandes renvoie un code d’erreur. Cela permet sa modification pour l’adapter à des besoins spécifiques (options, paramètres particuliers, etc.)

#!/bin/bash

# Définition des variables
source="$1"
intermediairevideo="/tmp/$$-intermediairevideo.mp4"
intermediaireaudio="/tmp/$$-intermediaireaudio.m4a"
intermediaireaudiovideo="/tmp/$$-intermediaireaudiovideo.mp4"
destination="${source%.*}.mp4"

# Teste le résultat de la dernière commande et arrête le script s’il y a eu
# un problème. Les fichiers temporaires sont également nettoyés
function finsiprobleme {
  if [ $? -ne 0 ]
  then
    echo "Erreur !!!"
    rm "$intermediairevideo" "$intermediaireaudio" "$intermediaireaudiovideo" 2> /dev/null
    exit 1
  else
    echo "OK"
  fi
}

# Encode en MPEG-4 le flux vidéo de la source
echo -n "→ Encodage en MPEG-4 du flux vidéo de la source... "
x264 -o "$intermediairevideo" "$source" 2> /dev/null
finsiprobleme

# Encode en FAAC le flux audio de la source
echo -n "→ Encodage en FAAC du flux audio de la source... "
ffmpeg -i "$source" -acodec pcm_s16le -f wav - 2> /dev/null | faac -o "$intermediaireaudio" - 2> /dev/null
finsiprobleme

# Multiplexe les flux audio et vidéo
echo -n "→ Multiplexage des flux audio et vidéo... "
ffmpeg -i "$intermediairevideo" -vcodec copy -i "$intermediaireaudio" -acodec copy "$intermediaireaudiovideo" 2> /dev/null
finsiprobleme

# Ajoute les informations de streaming et produit la vidéo finale
echo -n "→ Ajout des informations pour le streaming... "
qt-faststart "$intermediaireaudiovideo" "$destination" > /dev/null 2> /dev/null
finsiprobleme

# Nettoie les fichiers intermédiaires
echo -n "→ Nettoyage des fichiers intermédiaires... "
rm "$intermediairevideo" "$intermediaireaudio" "$intermediaireaudiovideo" 2> /dev/null
finsiprobleme

# Fin
echo "La vidéo a été convertie !"




Rendu sous Cinelerra (encodage)

15 12 2010

Sous Cinelerra, une fois le montage réalisé, il faut générer la vidéo. L’idéal est de générer un master duquel on déclinera les différentes versions dont on a besoin (web, DVD, HD etc.).

Et c’est là que la galère commence…

Lire la suite »





Sony α55, vidéos MTS et Cinelerra

12 12 2010

Heureux possesseur d’un α55, j’ai eu des petits soucis pour pouvoir utiliser les vidéos qu’il produit sous Cinelerra (Ubuntu/Linux). Après quelques prises de tête, voici le résultat de mes recherches.

Lire la suite »





Performances vidéo du Sony 𝛂55

30 10 2010

Comme je lorgne du côté du Sony 𝛂55 ou alpha 55 (c’est bientôt Noël) je vous propose de partager un panorama des performances en vidéo de ce boitier.

Lire la suite »





Comment faire un bon score à Plock ?

14 11 2009

Plock est un jeu Flash accessible via FaceBook. Le but est de supprimer le plus possible de blocs de couleur identique en une minute. Il n’y a pas vraiment de temp accordé à la stratégie, seuls des réflexes et un œil de lynx vous seront d’un grand secours. Et pour les daltoniens, c’est pas évident puisque tout est basé sur la couleur.

Pour vous faire une petite idée, voici à quoi ressemble l’aire de jeu :

L’aire de jeu de Plock

L’aire de jeu de Plock

À partir de ça, comment faire un bon score ?

Lire la suite »





25 ans d’Expotec, l’invitation

1 11 2009

La semaine prochaine, si vous êtes sur Rouen, vous n’aurez aucune excuse de ne pas aller à l’exposition que le Centre d’Histoire Sociale de Haute-Normandie organise à l’occasion de ses 25 ans à l’abbatiale Saint-Ouen (juste à côté de l’hôtel de ville).

Et pourquoi ?

Lire la suite »





Firefox 3.5, HTML5, vidéo, et après ?

10 06 2009

Firefox 3.5, qui sort dans moins de 35 jours supportera la balise <video>. Et après ?

Lire la suite »