
Recherche avancée
Autres articles (90)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)
Sur d’autres sites (12980)
-
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.
-
FFMPEG Add 2 watermarks (txt + png) to a video
21 mai 2020, par razzI'm trying to add 2 watermarks to a video, one should be a .png file and the second some moving/scrolling text.



Png = fixed at right bottom



Text = Moving/scrolling from the top right to the top left. Starting at 50% of total video length (appear at 1:00 if total length is 2:00) and disappearing in 20 seconds.



I already use a command to encode the video and add a logo at the right bottom but having trouble adding scrolling text at the same time.



-i logo.png -filter_complex "overlay=main_w-overlay_w:main_h-overlay_h-4" -keyint_min 20 -vcodec libx264 -c:a copy -b:v 1500k -movflags +faststart



-
Translating Handbrake options to a FFMPEG command
9 mai 2020, par ArifI want to convert a bunch of videos from x264 to x265, but I need to do so with ffmpeg in terminal because it's a remote server. These are my Handbrake options (listed items are ticked) :



Summary tab



- 

- Web optimized
- Align A/V Start







Dimensions tab unchanged



Filters tab



- 

- Sharpen - LapSharp, preset : Medium





Video tab



- 

-
Video codec - H.265 (x265)
-
Framerate (FPS) - 30 - Peak Framerate
-
Quality - Constant Quality - 28
-
Encoder preset - Medium
-
Encoder tune - None
-
Encoder profile - Auto















Audio tab



- 

- Audio track - AAC, bitrate : 128





Subtitles tab - No subtitles (remove if exists)



This is the ffmpeg command that I've managed to compile so far :



ffmpeg -i input.mp4 -c:v libx265 -crf 28 -c:a aac -b:a 128k -max_muxing_queue_size 400 -movflags +faststart output.mp4



I have the following two questions :



- 

- Does the ffmpeg command provided list all the options except the peak framerate, sharpening filter and removing subtitle ones ? How do I incorporate these three ?
- Slightly unrelated, but does having
-max_muxing_queue_size 400
negatively affect file size or video quality ? I've only included this because I'd ran into encoding errors in the past.







Thank you.



My Handbrake log with the above options, if it helps :



Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'E:\input.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.10.100
 Duration: 00:02:20.52, start: 0.000000, bitrate: 1487 kb/s
 Stream #0:0(und): Video: h264 (High) [avc1 / 0x31637661]
 yuv420p, tv, bt709/bt709/bt709
 1280x720 [PAR 1:1 DAR 16:9], 1288 kb/s, PAR 1:1 DAR 16:9
 29.97 fps, 30k tbn (default)
 Metadata:
 handler_name : VideoHandler
 Stream #0:1(eng): Audio: aac (LC) [mp4a / 0x6134706D]
 44100 Hz, stereo, fltp, 192 kb/s (default)
 Metadata:
 handler_name : SoundHandler
[04:26:49] scan: decoding previews for title 1
[04:26:49] scan: audio 0x1: aac, rate=44100Hz, bitrate=192025 English (AAC) (2.0 ch)
[04:26:50] scan: 10 previews, 1280x720, 29.970 fps, autocrop = 0/0/0/0, aspect 16:9, PAR 1:1
[04:26:50] scan: supported video decoders: avcodec qsv
[04:26:50] libhb: scan thread found 1 valid title(s)
[04:26:50] starting job
[04:26:50] decomb filter thread started for segment 0
[04:26:50] decomb filter thread started for segment 1
[04:26:50] decomb filter thread started for segment 3
[04:26:50] decomb check thread started for segment 0
[04:26:50] decomb check thread started for segment 1
[04:26:50] yadif thread started for segment 0
[04:26:50] decomb check thread started for segment 3
[04:26:50] mask filter thread started for segment 0
[04:26:50] work: track 1, dithering not supported by codec
[04:26:50] mask filter thread started for segment 1
[04:26:50] work: only 1 chapter, disabling chapter markers
[04:26:50] job configuration:
[04:26:50] * source
[04:26:50] + E:\input.mp4
[04:26:50] + title 1, chapter(s) 1 to 1
[04:26:50] + container: mov,mp4,m4a,3gp,3g2,mj2
[04:26:50] mask filter thread started for segment 3
[04:26:50] + data rate: 1487 kbps
[04:26:50] * destination
[04:26:50] + C:\Users\Hp\Desktop\output.mp4
[04:26:50] + container: MPEG-4 (libavformat)
[04:26:50] + optimized for HTTP streaming (fast start)
[04:26:50] + align initial A/V stream timestamps
[04:26:50] * video track
[04:26:50] + decoder: h264
[04:26:50] + bitrate 1288 kbps
[04:26:50] + filters
[04:26:50] mask filter thread started for segment 2
[04:26:50] + Comb Detect (mode=3:spatial-metric=2:motion-thresh=1:spatial-thresh=1:filter-mode=2:block-thresh=40:block-width=16:block-height=16)
[04:26:50] + Decomb (mode=39)
[04:26:50] + Framerate Shaper (mode=2:rate=27000000/900000)
[04:26:50] + frame rate: 29.970 fps -> peak rate limited to 30.000 fps
[04:26:50] mask erode thread started for segment 1
[04:26:50] + Crop and Scale (width=1280:height=720:crop-top=0:crop-bottom=0:crop-left=0:crop-right=0)
[04:26:50] + source: 1280 * 720, crop (0/0/0/0): 1280 * 720, scale: 1280 * 720
[04:26:50] + Sharpen (lapsharp) (y-strength=0.2:y-kernel=isolap:cb-strength=0.2:cb-kernel=isolap)
[04:26:50] + Output geometry
[04:26:50] + storage dimensions: 1280 x 720
[04:26:50] + pixel aspect ratio: 1 : 1
[04:26:50] + display dimensions: 1280 x 720
[04:26:50] + encoder: H.265 (libx265)
[04:26:50] + preset: medium
[04:26:50] + profile: auto
[04:26:50] + quality: 28.00 (RF)
[04:26:50] * audio track 1
[04:26:50] mask erode thread started for segment 2
[04:26:50] + decoder: English (AAC) (2.0 ch) (track 1, id 0x1)
[04:26:50] + bitrate: 192 kbps, samplerate: 44100 Hz
[04:26:50] + mixdown: Stereo
[04:26:50] + encoder: AAC (libavcodec)
[04:26:50] + bitrate: 128 kbps, samplerate: 48000 Hz
[04:26:50] mask erode thread started for segment 3
[04:26:50] mask dilate thread started for segment 0
[04:26:50] mask dilate thread started for segment 1
[04:26:50] mask dilate thread started for segment 2
[04:26:50] decomb check thread started for segment 2
[04:26:50] yadif thread started for segment 1
[04:26:50] yadif thread started for segment 2
[04:26:50] yadif thread started for segment 3
[04:26:50] MTFrame thread started for segment 1
[04:26:50] MTFrame thread started for segment 2
[04:26:50] MTFrame thread started for segment 3
[04:26:50] mask dilate thread started for segment 3
[04:26:50] sync: expecting 4211 video frames
[04:26:50] mask erode thread started for segment 0
[04:26:50] decomb filter thread started for segment 2
[04:26:50] MTFrame thread started for segment 0
x265 [info]: HEVC encoder version 2.6
x265 [info]: build info [Windows][GCC 7.2.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [info]: Main profile, Level-3.1 (Main tier)
x265 [info]: Thread pool created using 4 threads
x265 [info]: Slices : 1
x265 [info]: frame threads / pool features : 2 / wpp(12 rows)
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2
x265 [info]: Keyframe min / max / scenecut / bias: 30 / 300 / 40 / 5.00
x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0
x265 [info]: References / ref-limit cu / depth : 3 / on / on
x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress : CRF-28.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=2.00 rskip signhide tmvp strong-intra-smoothing
x265 [info]: tools: lslices=4 deblock sao
[04:26:50] sync: first pts video is 0
[04:26:50] sync: "Chapter 1" (1) at frame 1 time 0
[04:26:50] sync: first pts audio 0x1 is 0
[04:40:02] reader: done. 1 scr changes
[04:40:13] work: average encoding speed for job is 5.245789 fps
[04:40:13] comb detect: heavy 3 | light 10 | uncombed 4198 | total 4211
[04:40:13] decomb: deinterlaced 3 | blended 10 | unfiltered 4198 | total 4211
[04:40:13] vfr: 4211 frames output, 0 dropped and 0 duped for CFR/PFR
[04:40:13] vfr: lost time: 0 (0 frames)
[04:40:13] vfr: gained time: 0 (0 frames) (0 not accounted for)
[04:40:13] aac-decoder done: 6052 frames, 0 decoder errors
[04:40:13] h264-decoder done: 4211 frames, 0 decoder errors
[04:40:13] sync: got 4211 frames, 4211 expected
[04:40:13] sync: framerate min 18.394 fps, max 29.970 fps, avg 29.966 fps
x265 [info]: frame I: 18, Avg QP:24.13 kb/s: 2900.85
x265 [info]: frame P: 1079, Avg QP:26.64 kb/s: 1040.14
x265 [info]: frame B: 3114, Avg QP:33.15 kb/s: 235.18
x265 [info]: Weighted P-Frames: Y:0.4% UV:0.4%
x265 [info]: consecutive B-frames: 4.0% 1.4% 20.1% 55.7% 18.8%
encoded 4211 frames in 802.93s (5.24 fps), 452.83 kb/s, Avg QP:31.44
[04:40:13] mux: track 0, 4211 frames, 7970061 bytes, 453.68 kbps, fifo 8192
[04:40:13] mux: track 1, 6588 frames, 2254132 bytes, 128.31 kbps, fifo 8192
[04:40:13] libhb: work result = 0

# Encode Completed ...