27
Faire un clone Youtube ou un clone Dailymotion
Catégories : Developpement Web par mitirapaJ’avais fait un topic dans un forum, donc je remet ici en billet. Donc pour faire un clone Youtube ou un clone Dailymotion, il faut avant tout :
-avoir un serveur dédié
-connaitre le minimum en serveur linux
-connaitre tranquillos sont php/mysql
Si vous avez ces 3 points ok, vous pouvez lire la suite !
Donc il y a 2 méthodes, une simple automatisée et une plus longue mais au moins on comprend comment cela fonctionne exactement, et dans la Methode 2, vous aurez la suite des étapes à faire.
Méthode 1 : ( Venant d’Eric )
Ce tuto vous concerne si vous etes sous Debian (etch dans mon exmple) par contre.
Tout d’abord ajoutez à votre source.list :
Code:
## Multimedia
#debian-marillat apt GPG key : Install the debian-multimedia-keyring package.
deb http://www.debian-multimedia.org etch main
deb-src http://mirror.home-dn.net/debian-multimedia etch main
Avant l’update il est nécessaire d’installer si vous ne l’avez pas :
apt-get install debian-multimedia-keyring
Faire l’update :
apt-get update
et installer :
apt-get install ffmpeg
Pour voir le résultat :
ffmpeg -formats
Méthode 2 :
Premiere étape: avoir un logiciel sur le serveur pour encoder en flv les videos…
il existe pour ca ffmpeg (site officiel: http://ffmpeg.mplayerhq.hu/ )
si on fait directement, vous aurez ptetre des trucs genre codecs qui vont vous bloquer par la suite donc je vous conseille de suivre dans le meme ordre 98% de cette page:
http://www.funix.org/fr/linux/base-video.htm
les 2% restant seront les trucs que vous aurez pas reussi ou jugé pas utile
en tant que newbie, cette page est faisable et dedans vous aurez l’etape pour installer ffmpeg
puis tester en ssh une commande, exemple:
/usr/local/bin/ffmpeg -i mavideo.avi manouvellevideo.flv
(il existe des options comme redimmensionner, etc.., cf le site officiel de ffmpeg)
Seconde etape: Faire votre script d’upload
bon on a deja ffmpeg qui fonctionne, maintenant faut un script pour uploader des gros fichiers sur le serveur, il y a plusieurs solutions:
la mieux serait d’utiliser un script cgi, j’ai trouvé Uber-Uploader qui a l’air vraiment interressant
( http://uber-uploader.sourceforge.net/ )
Sinon perso,j’avais un prbl de cgi sur mon site, donc j’ai cherché autre, et j’utilise du flash+php
pour le flash j’ai trouvé un petit script tout simple, par contre j’ai perdu l’url de l’auteur, donc j’ai mis la le fichier: http://www.surf4all.net/up.zip
(il y a aussi la source .fla dedans)
il faudra aussi dans ce cas malheureusement modifier votre php.ini afin d’augmenter la taille d’envoi des fichiers vers votre serveur, et le timeout
Troisieme étape: faire encoder les fichiers uploadés
donc on upload les videos dans un dossier
on fait un cron qui va verifier par exemple toutes les 20 minutes le dossier, et qui encode en flv dans un autre dossier
mon cron:
Code:
#!/bin/sh
# script /home/ff
ls -R /home/web/surf4all.net/videoorigine/* | while read fichier
do
file “$fichier” |grep “video” 1>/dev/null &&
fichier2=${fichier/uploads/flvfinal}
fichier2=${fichier2/avi/flv}
fichier2=${fichier2/mpeg/flv}
fichier2=${fichier2/mpg/flv}
fichier2=${fichier2/wmv/flv}
fichier2=${fichier2/divx/flv}
fichier2=${fichier2/AVI/flv}
fichier2=${fichier2/MPEG/flv}
fichier2=${fichier2/MPG/flv}
fichier2=${fichier2/WMV/flv}
fichier2=${fichier2/DIVX/flv}
if /usr/local/bin/ffmpeg -i “$fichier” -s 320×240 -ar 22050 -b 600k “$fichier2″
rm “$fichier”
then echo “Conversion du fichier $fichier reussi.”
else echo “Probleme de conversion du fichier $fichier”
fi
/usr/local/bin/ffmpeg -i “$fichier2″ -vcodec mjpeg -vframes 1 -an -f rawvideo -s 160×120 “$fichier2.jpg”
done
attention, j’ai une ptite erreur dans mon cron (j’ai jamais codé en sh), cad, qu’il fait pas ma boucle comme il faut mais ca fonctionne qd meme un minimum et surement qu’il est mal fait dirons les codeurs… (donc si vous avez mieux je suis preneur)
(j’ai trouvé comment faire ce cron a partir d’une personne qui le faisait sur http://lea-linux.org/pho/read/7/298584 )
Quatrieme étape: bien penser vos script du debut de l’upload a sa conversion en flv, il faut arriver a trouver si la video est bien uploadé (dans une base de donnée je confirme l’upload), bien converti (en php je teste le fichier encodée si il existe) et faire une vignette (c mon cron qui fait avec ffmpeg si vous regardez bien)
Puis apres ben s’amuser à programmer votre script, et pour le lecteur flash celui la est le mieux que j’ai trouvé: http://www.jeroenwijering.com/?item=Flash_Video_Player
Options: il existe une extension ffmpeg-php pour php ( http://ffmpeg-php.sourceforge.net/ ) qui vous permet de connaitre la durée, et d’autres trucs sur la video, ou de generer une vignette…
pour mon cas, je n’arrivais pas a l’utiliser (segmentation fault dans apache) et c’est pour ca que ma vignette est fait dans le cron avec ffmpeg
et pour votre player, selon le navigateur faut cliquer 2 fois sur le flash pour l’avoir, pour eviter ca, il y a un petit script js sur http://www.tekool.net/javascript/backtothehtml (merci a julien-br pour cette info)
voila pour ceux qui veulent se lancer dedans, j’avais pas trouvé de bonne doc, donc j’ai perdu du tps à chercher un peu et faire plein de tests, mais en suivant a peu pres ca, ca prend 2 jours puis voila, le plus long à faire au final reste votre script php/mysql …
Il y a peut être plus court, mais je pense qu’en lisant et faisant tout ceci on comprend le mécanisme pour un premier essai.
Fil Rss






