
Recherche avancée
Autres articles (57)
-
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
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 -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (13979)
-
Revision 30796 : On passe en version 0.6 avec tout le code revu et plus ou moins corrigé
10 août 2009, par kent1@… — LogOn passe en version 0.6 avec tout le code revu et plus ou moins corrigé
-
FFPLAY produces black video output [closed]
28 janvier 2020, par RooterTooterI’m having an issue playing videos with ffplay on an embedded arm device (imx6). The OS is based on yocto sumo and uses the meta-freescale layers for imx6.
I have a number of test videos in different formats that I am sure are formatted correctly (They play fine on my laptop with ffplay). FFMPEG has all the necessary codecs, detects my streams, it plays audio without an issue, but the video is just black.
It’s worth nothing that I’m running X11 and have xterm running, and when ffplay is trying to play, a black box will pop up on the screen in the correct dimensions like it thinks it’s decoding video, but it’s always blank.
$DISPLAY=:0 ffplay test.mp4
ffplay version 3.3.3 Copyright (c) 2003-2017 the FFmpeg developers
built with gcc 7.3.0 (GCC)
configuration: --disable-stripping --enable-pic --enable-shared --enable-pthreads --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape --enable-nonfree --cross-prefix=arm-poky-linux-gnueabi- --ld='arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/builder/imx-yocto-bsp/machine/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/ffmpeg/3.3.3-r0/recipe-sysroot' --cc='arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/builder/imx-yocto-bsp/machine/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/ffmpeg/3.3.3-r0/recipe-sysroot' --cxx='arm-poky-linux-gnueabi-g++ -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/builder/imx-yocto-bsp/machine/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/ffmpeg/3.3.3-r0/recipe-sysroot' --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/builder/imx-yocto-bsp/machine/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/ffmpeg/3.3.3-r0=/usr/src/debug/ffmpeg/3.3.3-r0 -fdebug-prefix-map=/home/builder/imx-yocto-bsp/machine/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/ffmpeg/3.3.3-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/builder/imx-yocto-bsp/machine/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/ffmpeg/3.3.3-r0/recipe-sysroot= -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/builder/imx-yocto-bsp/machine/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/ffmpeg/3.3.3-r0/recipe-sysroot' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed' --sysroot=/home/builder/imx-yocto-bsp/machine/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/ffmpeg/3.3.3-r0/recipe-sysroot --enable-hardcoded-tables --libdir=/usr/lib --shlibdir=/usr/lib --datadir=/usr/share/ffmpeg --disable-mipsdsp --disable-mipsdspr2 --cpu=cortex-a9 --pkg-config=pkg-config --enable-avcodec --enable-avdevice --enable-avfilter --enable-avformat --enable-avresample --enable-bzlib --enable-gpl --disable-libgsm --disable-indev=jack --disable-libvorbis --enable-lzma --disable-libmp3lame --enable-openssl --enable-postproc --disable-libschroedinger --enable-sdl2 --disable-libspeex --enable-swresample --enable-swscale --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvpx --enable-libx264 --enable-outdev=xv
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':q= 0B f=0/0
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.20.100
Duration: 00:00:30.88, start: 0.000000, bitrate: 143 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x180, 67 kb/s, 21.08 fps, 21.08 tbr, 16192 tbn, 42.17 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 66 kb/s (default)
Metadata:
handler_name : SoundHandlerI’ve tried h264 and mp2 video with the same results. Has anyone seen this before
-
Use ff mpeg inside a loop to create thumbnails
30 avril 2014, par Paul LedgerI have an uploader which I am creating for a site. The uploader is a jquery plugin which I am on creating that allows single of multiple uploads of images or videos.
The uploader works with no problems and ffmpeg does create thumbnails no problem. However I have a max file size of 1GB which I will implement to the total of uploads so that users cannot upload to much in one go. But for testing I haven’t yet so I can test the limits of the uploader capabilities before adding restrictions.
I have 4 videos I am using to test 246mb each. The files upload and move to the folder set on the test server (localhost) but the thumbnails don’t create as the PHP script extends the maximum time limit. The easy option would be to change this in php.ini easily.
The problem is thought the progress bar only tracks the upload not the ffmpeg conversion. Is there a way of tracking this in my progress bar or running this as a background task with multiple video files.
It might be worth mentioning but with smaller videos, under 70mb each there is no problem at all thumbnails are created but still after the progress bar reaches 100%.
If it helps heres the relevant sections of the code. I can add the full source on git if needed. But I do fear that the answer will be no or alter the php.ini file
JQuery/ Ajax :
$.ajax({
url: options.processor,
type: "POST",
data: formdata,
processData: false,
contentType: false,
dataType:"JSON",
beforeSend: init,
error: error,
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',uploadProgress, false);
}
return myXhr;
},
success: onComplete
});
var uploadProgress = function(e){
if(e.lengthComputable){
if(options.single === true){
$('#'+options.counter).html('File 1 of 1');
}else{
$('#'+options.counter).html('Files '+ item_count +' of ' + item_count + ' uploading');
}
var p = (e.loaded / e.total) * 100;
$('#'+options.progress_text).html(Math.round(p) + '%');
$('#'+options.progress_bar).width(p + '%');
}
}PHP :
if(!empty($_FILES['file'])){
if(!empty($_POST['single'])){
//single file upload
if($_FILES['file']['error'] === 0){
$temp = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$ext = explode('.',$name);
$ext = strtolower(end($ext));
$file = md5($temp).time().'.'.$ext;
if(in_array($ext,$allowed) === true && move_uploaded_file($temp,"../uploads/{$file}") === true){
$succedeed[] = array('name' => $name,'file' => $file,'type'=>'image');
}else{
$failed[] = array('name' => $name, 'file' => $file, 'error' => 'File type not allowed');
}
}
}else{
//multiple file upload
foreach($_FILES['file']['name'] as $key => $name){
if($_FILES['file']['error'][$key] === 0){
$temp = $_FILES['file']['tmp_name'][$key];
$ext = explode('.',$name);
$ext = strtolower(end($ext));
$_file = md5($temp).time();
$file = $_file.'.'.$ext;
if(in_array($ext,$allowed) === true && move_uploaded_file($temp,"../uploads/{$file}") === true){
$file_type = explode('/',$_FILES['file']['type'][$key]);
if($file_type[0] === 'image'){
echo 'image';
$succedeed[] = array('name' => $name,'file' => $file, 'type' => 'image');
}else{
$ffmpeg = 'ffmpeg';
$output = dirname(__DIR__).'/uploads/thumbs/'.$_file.'.jpg';
$input = dirname(__DIR__).'/uploads/'.$file;
$mov = new ffmpeg_movie($input);
$d = $mov->getDuration();
$iscopy = $mov->getCopyright();
$h = $mov->getFrameHeight();
$w = $mov->getFrameWidth();
$pos = ceil((int)$d /3);
$size = $w.'x'.$h;
$cmd = "ffmpeg -i $input -an -ss $pos -s $size $output";
shell_exec($cmd);
$succedeed[] = array('name' => $name,'file' => '/thumbs/'.$_file.'.jpg', 'type' => 'video');
}
}else{
$failed[] = array('name' => $name, 'file' => $file, 'error' => 'File type not allowed');
}
}
}
}
}**UPDATE the process of converting the files to thumbnails takes less time if I drop the posotion of where the thumb is taken from ie :
$cmd = "ffmpeg -i $input -an -ss $pos -s $size $output";
would become
$cmd = "ffmpeg -i $input -an -ss 3 -s $size $output";
I presume this is because ffmpeg plays the video until it gets to that point in the video to take the thumbnail. There for if the video is 5mins and the the thumb is taken at 2.30 then each conversion would take 2 min 30. I think I answered my own question here but take the thumbnail form somewhere between 1 - 5 seconds. Or alternately add a second progress bar into the onComplete handler which would calculate the time this would take and display it to the user.