Blog qui buzz

Internet change tous les jours, ce blog aussi !

Vous avez un buzz ? Bah alors !? Partagez le avec les autres internautes !!!
Cliquez ici pour envoyer votre buzz

juin
27

Faire un clone Youtube ou un clone Dailymotion

Catégories : Developpement Web par mitirapa

J’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.

Partager cet article pour le faire connaitre aux autres internautes : Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Fuzz
  • Scoopeo
  • DiggFR.com
  • del.icio.us
  • Technorati
  • Digg
  • Wikio

Laisser un commentaire

Buzz similaires :