Pour un client, j’aimerais proposer un sous-titrage/traduction de vidéo en ligne (pages en php) :
sur le serveur, la vidéo a été préalablement exportée sans les sous-titres en image par image (25 images par seconde, plein de fichiers)
l’utilisateur visualise une série d’images, chacune avec 1 ou 2 lignes de sous-titres proposés en français / anglais
il répond à un formulaire sous chaque image pour remplacer les sous-titres dans sa langue
Automatisation déjà en place :
le serveur avec sa bibliothèque graphique fusionne les sous-titres sur les images concernées
Jusqu’ici tout va bien…
J’aimerais ENCODER ces images en vidéo WMV directement sur le serveur… Pouvez-vous me conseiller un module pour ça ?
(ma solution actuelle est assez simple : je télécharge les images, j’encode la vidéo sur mon PC et je la dépose sur un serveur ftp)
(mais j’aimerais automatiser cette dernière partie)
Voir du côté de ffmpeg/avconv, le couteau suisse de la vidéo.
Mais mieux vaudrait choisir un autre format de sortie que le WMV.
Préférer le .webm ou le .ogm pour une lecture directe dans le navigateur (Firefox/IceWeasel, Chromium/Chrome)
Ces vidéos sont à intégrer dans des traductions de présentations Powerpoint (plein de filiales dans des dizaines de pays, elles font elles-mêmes leurs traductions). Donc les filiales vont préférer le wmv…
Je pensais générer un fichier avec une ligne de commande sur le disque et la faire exécuter par php via un exec(), puis effacer ce fichier…
Mais si il y a un accès plus direct, oui, je préfèrerais !
Le choix des modules, comment les mettre en oeuvre,… Désolé si ce n’est pas le projet du siècle, pour moi ça demande pas mal de recherche pour assembler une solution, c’est la première fois que j’essaie de transformer de la vidéo hors Mac ou PC !
NB: je crois pas que le ffmpeg par défaut sous Debian sait faire du wmv, il faut celui de deb-multimedia.org (attention aux conflits avec les paquets Debian officiels).
Ca c’était la version exec().
J’y connais rien avec ffmpeg en plugin sous php, à part que ça existe. Un des problèmes va être le set_time_limit de ton php.ini en cas de gros fichiers.
-q:v 1 est nécessaire pour avoir les images non compressées
(puis traitement sur les images)
assemblage de la vidéo de sortie :
On est obligé d’utiliser WMV8 et pas WMV9
Il n’y a pas de patch vc-1 ou wmv3 encoder (si j’ai bien tout lu à ce sujet)
-q:v 2 est plus compressé que -q:v 1
env 3250kb/s @ 1280x720/25ips : OK pour moi
-q:v 3 commence à pixéliser
Pour l’intégration, je vais rester sur un traitement asynchrone via un exec().
Donc ajouter un script CRON pour vérifier si le fichier de sortie est généré et tout nettoyer à la fin.
(Autre méthode ?)