
Recherche avancée
Médias (1)
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (64)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...) -
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...)
Sur d’autres sites (8397)
-
convert f4v to mp4 with ffmpeg
9 août 2013, par Winnie OldrightTrying to convert
f4v
tomp4
with ffmpegThis file
FFmpeg :
ffmpeg -i input.f4v -vcodec copy -acodec copy output.mp4
In output i have black screen in video and no sound but track seconds are incrementing properly.
What i'm doing wrong ? Or maybe i need mpg or some other file type in out put (output file type should supports in android).
-
How to use (django-celery,RQ) worker to execute a video filetype conversion (ffmpeg) in django on heroku (My code works locally)
15 janvier 2013, par GetItDoneOne part of my website includes a form that allows users to upload video. I use ffmpeg to convert the video to flv. My media and static files are stored on Amazon S3. I can get everything to work perfectly locally, however I can't seem to figure out how to use a worker to run the video conversion subprocess in production. I have dj-celery and rq installed in my app. The code in my view that I was able to get to work locally is :
#views.py
def upload_broadcast(request):
if request.method == 'POST':
form = VideoUploadForm(request.POST, request.FILES)
if form.is_valid():
new_video=form.save()
def convert_to_flv(video):
filename = video.video_upload
sourcefile = "%s%s" % (settings.MEDIA_ROOT, filename)
flvfilename = "%s.flv" % video.id
imagefilename = "%s.png" % video.id
thumbnailfilename = "%svideos/flv/%s" % (settings.MEDIA_ROOT, imagefilename)
targetfile = "%svideos/flv/%s" % (settings.MEDIA_ROOT, flvfilename)
ffmpeg = "ffmpeg -i %s -acodec mp3 -ar 22050 -f flv -s 320x240 %s" % (sourcefile, targetfile)
grabimage = "ffmpeg -y -i %s -vframes 1 -ss 00:00:02 -an -vcodec png -f rawvideo -s 320x240 %s" % (sourcefile, thumbnailfilename)
print ("SOURCE: %s" % sourcefile)
print ("TARGET: %s" % targetfile)
print ("TARGET IMAGE: %s" % thumbnailfilename)
print ("FFMPEG TASK CODE: %s" % ffmpeg)
print ("IMAGE TASK CODE: %s" % grabimage)
try:
ffmpegresult = subprocess.call(ffmpeg)
print "---------------FFMPEG---------------"
print ffmpegresult
except:
print "Not working."
try:
videothumbnail = subprocess.call(grabimage)
print "---------------IMAGE---------------"
print videothumbnail
except:
print "Not working."
video.flvfilename = flvfilename
video.videothumbnail = imagefilename
video.save()
convert_to_flv(new_video)
return HttpResponseRedirect('/video_list/')
else:
...This is my first time trying to use a worker (or ever pushing a project to production), so even with the documentation it is still unclear to me what I need to do. I have tried several different things but nothing seems to work. Is there just a simple way to tell celery to run the ffmpegresult = subprocess.call(ffmpeg) ? Thanks in advance for any help or insight.
EDIT- Added heroku logs
2013-01-10T20:58:57+00:00 app[web.1]: TARGET: /media/videos/flv/8.flv
2013-01-10T20:58:57+00:00 app[web.1]: IMAGE TASK CODE: ffmpeg -y -i /media/videos/practice.wmv -vframes 1 -ss 00:00:02 - an -vcodec png -f rawvideo -s 320x240 /media/videos/flv/8.png
2013-01-10T20:58:57+00:00 app[web.1]: SOURCE: /media/videos/practice.wmv
2013-01-10T20:58:57+00:00 app[web.1]: FFMPEG TASK CODE: ffmpeg -i /media/videos/practice.wmv -acodec mp3 -ar 22050 -f fl v -s 320x240 /media/videos/flv/8.flv
2013-01-10T20:58:57+00:00 app[web.1]: TARGET IMAGE: /media/videos/flv/8.png
2013-01-10T20:58:57+00:00 app[web.1]: Not working.
2013-01-10T20:58:57+00:00 app[web.1]: Not working.NEWER EDIT
I tried adding a tasks.py and added the task :
celery = Celery('tasks', broker='redis://guest@localhost//')
@celery.task
def ffmpeg_task(video):
converted_file = subprocess.call(video)
return converted_filethen I changed the relevant section of my view to :
...
try:
ffmpeg_task.delay(ffmpeg)
print "---------------FFMPEG---------------"
print ffmpegresult
except:
print "Not working."
...My new logs are :
2013-01-15T13:19:52+00:00 app[web.1]: TARGET IMAGE: /media/videos/flv/12.png
2013-01-15T13:19:52+00:00 app[web.1]: SOURCE: /media/videos/practice.wmv
2013-01-15T13:19:52+00:00 app[web.1]: FFMPEG TASK CODE: ffmpeg -i /media/videos/practice.wmv -acodec mp3 -ar 22050 -f fl v -s 320x240 /media/videos/flv/12.flv
2013-01-15T13:19:52+00:00 app[web.1]: IMAGE TASK CODE: ffmpeg -y -i /media/videos/practice.wmv -vframes 1 -ss 00:00:02 -an -vcodec png -f rawvideo -s 320x240 /media/videos/flv/12.png
2013-01-15T13:19:52+00:00 app[web.1]: TARGET: /media/videos/flv/12.flv
2013-01-15T13:20:17+00:00 app[web.1]: 2013-01-15 13:20:17 [2] [CRITICAL] WORKER TIMEOUT (pid:12)
2013-01-15T13:20:17+00:00 app[web.1]: 2013-01-15 13:20:17 [2] [CRITICAL] WORKER TIMEOUT (pid:12)
2013-01-15T13:20:17+00:00 app[web.1]: 2013-01-15 13:20:17 [19] [INFO] Booting worker with pid: 19Am I completely missing something ? I'll keep trying, but will be very appreciative of any direction or assistance.
-
php ming flash swf slideshow to mp4/avi
19 août 2013, par StefanAfter hours of searching and trying i finally got a nice script together that generates a good looking Flash .swf file with a nice transaction in between de images.
It works great if you access the swf file directly in a browser, depending on the amount of images the flash created takes anywhere between 10 and 60 seconds.
But when uploading to Youtube the movie created flashed by in one second.
Because swf isnt really a accepted fileformat for Youtube we decided to convert the flash file to mp4 or avi using ffmpeg.
Unfortunally that didnt work, it had the same effect as the youtube movie.
We had a old version of ffmpeg and updated that to a recent version and tried to convert again with the same result.
The main thing i see is that ffmpeg cant see the swf file duration and bitrate, they are both 'N/A' while were do set them in the php script.
I thought it looked like the Metadata doesnt get written and i cant find anything on that regarding Ming.
But i downloaded a phpclass that extracts the metadata from the swf and that tells me the framerate etc is getting set.Now i have to admit i havent really tested with the new version because the commandline options are a little different but ill work on that after i post this.
In the previous version we tried setting the framerate of the source swf file, but that didnt work either.Anyone here that can has a idea ? it would be greatly appriciated.
PHP Ming Script :
$fps = 30;
foreach($objects as $objectId => $images){
// START FLASH MOVIE
$m = new SWFMovie();
$m->setDimension($width, $height);
$m->setBackground(0, 0, 0);
$m->setRate($fps);
$m->setFrames(count($images)*202); //count(images)* 2 breaks *($fps*$breakTime)+22(fadeOut))
$i = 0;
foreach($images as $image){
// REMOVE THE BACKGROUND IMAGE
if($behind){
$m->remove($behind);
}
// # REMOVE
// LOAD NEW IMAGE
$img = new SWFBitmap(fopen($image,"rb"));
$pic = $m->add($img);
$pic->setdepth(3);
// # LOAD
// BREAK TIME
for($j=1;$j<=($fps*$breakTime);$j++){
$m->nextFrame();
}
$m->remove($pic);
// # BREAK
// LOAD THE NEXT IMAGE AS BACKGROUND, IF LAST IMAGE, LOAD FIRST
$nextBackgrondImage =($images[$i+1]) ? $images[$i+1] : $images[0] ;
$img = new SWFBitmap(fopen($nextBackgrondImage,"rb"));
$behind = $m->add($img);
$behind->setdepth(2);
// # LOAD
// AND FADE OUT AGAIN
$img = fadeOut($image, $width, $height);
$pic = $m->add($img);
$pic->setdepth(3);
// # FADE OUT
// BREAK TIME
for($j=1;$j<=($fps*$breakTime);$j++){
$m->nextFrame();
}
$m->remove($pic);
# BREAK
$i++;
}
$m->save('./flash/'.$nvmId.'_'.$objectId.'.swf');
unset($m);
}
}FFMPEG version :
root@server:~# ffmpeg -version
\FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
built on Aug 15 2013 20:43:21 with gcc 4.4.5
configuration: --enable-libmp3lame --enable-libtheora --enable-libx264
--enable-libgsm --enable-postproc --enable-libxvid --enable-libfaac --enable-pthreads
--enable-libvorbis --enable-gpl --enable-x11grab --enable-nonfree
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0
FFmpeg SVN-r26402
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0FFMPEG command
root@server:~# ffmpeg -r 30 -i /pathTo/flash/73003_8962011.swf -r 30 -ar 22050 -b 2048k /pathTo/flash/output.avi
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
built on Aug 15 2013 20:43:21 with gcc 4.4.5
configuration: --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libgsm --enable-postproc --enable-libxvid
--enable-libfaac --enable-pthreads --enable-libvorbis --enable-gpl --enable-x11grab --enable-nonfree
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0
[swf @ 0x1ca1510] Estimating duration from bitrate, this may be inaccurate
Input #0, swf, from '/pathTo/flash/73003_8962011.swf':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: mjpeg, yuvj420p, 360x480, 30 fps, 30 tbr, 30 tbn, 30 tbc
File '/pathTo/output.avi' already exists. Overwrite ? [y/N] y
[buffer @ 0x1cb42d0] w:360 h:480 pixfmt:yuvj420p
[ffsink @ 0x1cb4570] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x1cb4870] w:360 h:480 fmt:yuvj420p -> w:360 h:480 fmt:yuv420p flags:0xa0000004
Output #0, avi, to '/pathTo/flash/output.avi':
Metadata:
ISFT : Lavf52.93.0
Stream #0.0: Video: mpeg4, yuv420p, 360x480, q=2-31, 2048 kb/s, 30 tbn, 30 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
Input Stream #0.0 frame size changed to 640x480, yuvj420p
frame= 39 fps= 0 q=17.5 Lsize= 524kB time=1.30 bitrate=3304.9kbits/s
video:518kB audio:0kB global headers:0kB muxing overhead 1.250735%Metadata :
DEBUG: Data values initialized
DEBUG: Opened ./flash/98701_8965910.swf
DEBUG: Read MAGIC signature: FWS
DEBUG: Read VERSION: 9
DEBUG: Partial SIZE read: 225
DEBUG: Partial SIZE read: 28928
DEBUG: Partial SIZE read: 1441792
DEBUG: Partial SIZE read: 0
DEBUG: Total SIZE: 1470945
DEBUG: RECT field size: 15 bits
DEBUG: RECT binary value: 000000000000000 (0)
DEBUG: RECT binary value: 011001000000000 (640)
DEBUG: RECT binary value: 000000000000000 (0)
DEBUG: RECT binary value: 010010110000000 (480)
DEBUG: Frame rate: 30.0
DEBUG: Frames: 2222
DEBUG: Finished processing ./flash/98701_8965910.swf
FILE: ./flash/98701_8965910.swf
MAGIC: FWS
VERSION: 9
SIZE: 1470945 bytes
WIDHT: 640
HEIGHT: 480
FPS: 30.0 Frames/s
FRAMES: 2222 FRAME