ca fleurit en ce moment du coté des clone youtube et je suis sur que bcp d'entre vous possede une partie video dans leur site...
j'avais aussi ca à l'ancien systeme, cad on encode soit meme les videos et on les rajoute, et vu que j'en avais pas bcp j'ai voulu passé a un systeme youtube qui encode lui meme les videos des internautes (ou de l'admin selon votre script) afin d'avoir plus de videos
(au final j'ai fait ca http://www.surf4all.net/modules.php?nam ... &voircat=1 )
ATTENTION: merci de pas tester en uploadant vos videos, car je ne veux que du surf... sinon yen a qui vont pourrir mon truc :twisted:
je ne vais pas mettre tous mes codes sources (car apres c'est chacun sa sauce, mais detailler un peu ce qu'il faut en tout)
donc avant tout il faut:
-avoir un dédié
-connaitre le minimum en serveur linux (je suis un debutant pour ma part)
-connaitre tranquillos sont php/mysql
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:
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 ...
j'avais aussi ca à l'ancien systeme, cad on encode soit meme les videos et on les rajoute, et vu que j'en avais pas bcp j'ai voulu passé a un systeme youtube qui encode lui meme les videos des internautes (ou de l'admin selon votre script) afin d'avoir plus de videos
(au final j'ai fait ca http://www.surf4all.net/modules.php?nam ... &voircat=1 )
ATTENTION: merci de pas tester en uploadant vos videos, car je ne veux que du surf... sinon yen a qui vont pourrir mon truc :twisted:
je ne vais pas mettre tous mes codes sources (car apres c'est chacun sa sauce, mais detailler un peu ce qu'il faut en tout)
donc avant tout il faut:
-avoir un dédié
-connaitre le minimum en serveur linux (je suis un debutant pour ma part)
-connaitre tranquillos sont php/mysql
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 320x240 -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 160x120 "$fichier2.jpg"
done
(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 ...