
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (103)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...) -
Formulaire personnalisable
21 juin 2013, parCette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire. (...)
Sur d’autres sites (9940)
-
Properly open audio files with libav/ffmpeg
20 novembre 2013, par HyndrixI am trying to decode audio samples from various file formats using ffmpeg. Therefore I have started some experimenting based on the code in this discussion : How to decode audio via FFmpeg in Android . I use the latest FFMPEG release (1.0) and compile it using https://github.com/halfninja/android-ffmpeg-x264
AVFormatContext * pFormatCtx;
avcodec_register_all();
av_register_all();
int lError;
if ((lError = avformat_open_input(&pFormatCtx, filename, NULL, 0))
!= 0) {
LOGE("Error open source file: %d", lError);
return;
}
if ((lError = avformat_find_stream_info(pFormatCtx, 0)) < 0) {
LOGE("Error find stream information: %d (Streams: %d)", lError, pFormatCtx->nb_streams);
return;
}
LOGE("audio format: %s", pFormatCtx->iformat->name);
LOGE("audio bitrate: %d", pFormatCtx->bit_rate);
audioStreamIndex = av_find_best_stream(pFormatCtx, AVMEDIA_TYPE_AUDIO,
-1, -1, &codec, 0);
//if (audioStreamIndex < 0 || audioStreamIndex >= pFormatCtx->nb_streams)
// audioStreamIndex = 0;
LOGE("Stream: %d (total: %d)", audioStreamIndex, pFormatCtx->nb_streams);
LOGE("audio codec: %s", codec->name);FFMPEG is compiled using enable-decoder=mp1/mp2/mp3/ogg/vorbis/wav/aac/theora and without any external libraries (e.g. libmp3lame, libtheora, etc.)
Opening of mp3 and wav files works without problems producing the following output for instance for mp3 :
audio format : mp3
audio bitrate : 256121
stream : 0 (total : 1)
audio codec : mp3
But when I try to open an ogg file I get this :
Error find stream information : -1 (Streams : 1)
When I manually set
audioStreamIndex=0
and comment out the return statement :Error find stream information : -1 (Streams : 1)
audio format : mp3
audio bitrate : 0
stream : 0 (total : 1)
audio codec : mp3
For m4a (AAC) I get this :
audio format : mp3
audio bitrate : 288000
stream : 0 (total : 1)
audio codec : mp1
but later it fails in
avcodec_decode_audio3
.I also tried to manually force a format without success :
AVInputFormat *pForceFormat= av_find_input_format("ogg");
if ((lError = avformat_open_input(&pFormatCtx, filename, pForceFormat, 0))
// continueIs there something wrong with the loading code which makes it only work with mp3 and wav and fails for other formats ?
Regards,
-
PHP Run FFMPEG in background, and find out when it's done [closed]
27 septembre 2012, par toms900Possible Duplicate :
Run a ffmpeg process in the backgroundI was wondering if there's any easy way to runn and ffmpeg process in the background so people can leave the page. And if you do that, then tell if the ffmpeg process is running, and when it's done, update the database to "finished". I'll post my code if I need to. Thanks !
Here's the code on the processing page :<?php
$name = $_FILES['upload_file']['name'];
$type = $_FILES['upload_file']['type'];
$size = $_FILES['upload_file']['size'];
$tmpname = $_FILES['upload_file']['tmp_name'];
if (!$title) {
$title = $name;
}
if (!$description) {
$description = "No description available.";
}
$string = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',10)),0,10);
$videoname = "$string.mp4";
$date = date("F d, Y"); // October 09, 2010
$srcFile = $tmpname;
mkdir("users/$usercode/uploads/$string");
mkdir("users/$usercode/uploads/$string/HD");
mkdir("users/$usercode/uploads/$string/regular");
mkdir("users/$usercode/uploads/$string/mobile_upload");
mkdir("users/$usercode/uploads/$string/thumbnails");
$destFile1 = "/users/$usercode/uploads/$string/HD/$string.mp4";
$destFile2 = "/users/$usercode/uploads/$string/regular/$string.mp4";
$destFile3 = "/users/$usercode/uploads/$string/mobile_upload/$string.mp4";
$ffmpegPath = "/usr/local/bin/ffmpeg";
$flvtool2Path = "/usr/bin/flvtool2";
$yamdiPath = "/usr/bin/yamdi";
$mp4boxPath = "/usr/local/bin/MP4Box";
// Create our FFMPEG-PHP class
$ffmpegObj = new ffmpeg_movie($srcFile);
// Save our needed variables
$srcWidth = $ffmpegObj->getFrameWidth();
$srcHeight = $ffmpegObj->getFrameHeight();
$srcFPS = $ffmpegObj->getFrameRate();
$srcAB = $ffmpegObj->getAudioBitRate();
$srcAR = $ffmpegObj->getAudioSampleRate();
$res = $srcWidth . "x" . $srcHeight;
// Call our convert using exec()
$iphone1 = getcwd().$destFile1;
$iphone2 = getcwd().$destFile2;
$iphone3 = getcwd().$destFile3;
$low = "854x480";
$local_img = "/users/$usercode/uploads/$string/thumbnails/$string.jpg";
$img = getcwd().$local_img;
$img = preg_replace('/ /','\ ',$img);
$thumb = "$string.jpg";
$cmd = "$ffmpegPath -i $tmpname 2>&1";
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
$total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
$interval = rand(0, $total);
}
$img = shell_exec("$ffmpegPath -ss $interval -i $tmpname 2>&1 -s 120x90 -f mjpeg -vframes 1 $img");
if ($srcWidth >= 1280 && $srcHeight >= 720) {
$out1 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre normal -ab $srcAB -ar $srcAR -b 5000k -r $srcFPS -s $res -acodec libfaac $iphone1");
$out2 = shell_exec("$mp4boxPath -inter 0.5 $iphone1");
$out3 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre normal -ab $srcAB -ar $srcAR -b 2000k -r $srcFPS -s $low -acodec libfaac $iphone2");
$out4 = shell_exec("$mp4boxPath -inter 0.5 $iphone2");
$out5 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre slow -ab 64k -ar 44100 -b 500k -r 30 -s $low -acodec libfaac $iphone3");
$out6 = shell_exec("$mp4boxPath -inter 0.5 $iphone3");
echo 1;
}
else {
$out3 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre normal -ab 64k -ar 44100 -b 500k -r 30 -s $low -acodec libfaac $iphone2");
$out4 = shell_exec("$mp4boxPath -inter 0.5 $iphone2");
$out5 = shell_exec("$ffmpegPath -i $tmpname -f mp4 -vcodec libx264 -vpre slow -ab 64k -ar 44100 -b 500k -r 30 -s $low -acodec libfaac $iphone3");
$out6 = shell_exec("$mp4boxPath -inter 0.5 $iphone3");
echo 1;
}
function generate_random($number_of_characters)
{
$characters = array();
$randomchar = "";
$x = 0;
for($i = 48; $i < 123; $i++)
{
if(ctype_alnum(chr($i)))
{
$characters[$x] = chr($i);
$x++;
}
}
for($i = 0; $i < $number_of_characters; $i++)
{
$randomchar .= $characters[rand(0, count($characters) - 1)];
}
return $randomchar;
}
?> -
Anomalie #3234 : Upload gros fichiers
24 juin 2014, par Pierre MiquelJe viens de tester et effectivement ça marche bien.
J’ai juste modifié les lignes suivantes// on est en hors quota donc erreur
echo 'Erreur de chargement :
le poids total des fichiers dé ;passe la limite autorisé ;e (’.ini_get(’post_max_size’).
’o).
Pour recommencer, veuillez recharger cette page.’ ;
exit() ;