
Recherche avancée
Autres articles (43)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Possibilité de déploiement en ferme
12 avril 2011, parMediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)
Sur d’autres sites (5345)
-
FFMPEG Incredibly Slow On Windows Server 2016
1er août 2019, par Ben GardnerI have a t2.small (2GB RAM, 1 vCPU) Amazon EC2 instance running a process using FFMPEG. It runs just fine ( 30 fps) on my computer (i7, 12GB RAM), but at around 2 fps on the server. Here’s the command :
rescale_command = f'ffmpeg -i {srcVideo} -filter_complex \"scale={owidth}:{oheight}, setsar=1:1, pad={dim[0]}:{dim[1]}:{oofx}:{oofy}\" {destVideo}'
I’ve tried uninstalling and reinstalling ffmpeg/ffprobe
Edited per llogan’s request, I’ve also discovered that it’s relatively speedy towards the beginning (I’m rescaling 100 times over the course of the program) and slows down towards the end.
It utilizes 100% of the CPU even from the beginning, though.
Example command/output :
ffmpeg -i media/8-1-2019/hi/dl-107.mp4 -filter_complex "scale=607:1080, setsar=1:1, pad=1920:1080:656:0" media/8-1-2019/hi/sl-107.mp4
ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.100 / 57. 64.100
libavformat 57. 56.100 / 57. 56.100
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'media/8-1-2019/hi/dl-107.mp4':
Metadata:
minor_version : 512
major_brand : isom
compatible_brands: isomiso2avc1mp41
comment : vid:v09044ce0000bks3802jqrog167l3rf0
encoder : Lavf58.20.100
Duration: 00:00:15.12, start: 0.000000, bitrate: 1046 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 540x960 [SAR 1:1 DAR 9:16], 972 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 64 kb/s (default)
Metadata:
handler_name : SoundHandler
[Parsed_setsar_1 @ 00000000023ac840] num:den syntax is deprecated, please use num/den or named options instead
[Parsed_setsar_1 @ 00000000023ad2c0] num:den syntax is deprecated, please use num/den or named options instead
[libx264 @ 00000000023ad800] using SAR=1/1
[libx264 @ 00000000023ad800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 00000000023ad800] profile High, level 4.0
[libx264 @ 00000000023ad800] 264 - core 148 r2721 72d53ab - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'media/8-1-2019/hi/sl-107.mp4':
Metadata:
minor_version : 512
major_brand : isom
compatible_brands: isomiso2avc1mp41
comment : vid:v09044ce0000bks3802jqrog167l3rf0
encoder : Lavf57.56.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc (default)
Metadata:
encoder : Lavc57.64.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1(und): Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
encoder : Lavc57.64.100 aac
Stream mapping:
Stream #0:0 (h264) -> scale (graph 0)
pad (graph 0) -> Stream #0:0 (libx264)
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
frame= 453 fps=3.6 q=29.0 Lsize= 3016kB time=00:00:15.01 bitrate=1645.7kbits/s speed=0.12x
video:2763kB audio:237kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.576820%
[libx264 @ 00000000023ad800] frame I:6 Avg QP:20.93 size: 38467
[libx264 @ 00000000023ad800] frame P:118 Avg QP:23.12 size: 11624
[libx264 @ 00000000023ad800] frame B:329 Avg QP:25.19 size: 3725
[libx264 @ 00000000023ad800] consecutive B-frames: 1.8% 2.6% 4.6% 90.9%
[libx264 @ 00000000023ad800] mb I I16..4: 16.4% 76.7% 6.9%
[libx264 @ 00000000023ad800] mb P I16..4: 2.3% 5.8% 0.9% P16..4: 9.8% 3.8% 1.6% 0.0% 0.0% skip:75.7%
[libx264 @ 00000000023ad800] mb B I16..4: 0.4% 0.7% 0.1% B16..8: 9.5% 1.6% 0.3% direct: 0.6% skip:86.8% L0:43.0% L1:50.8% BI: 6.2%
[libx264 @ 00000000023ad800] 8x8 transform intra:67.4% inter:78.3%
[libx264 @ 00000000023ad800] coded y,uvDC,uvAC intra: 32.5% 40.1% 9.4% inter: 2.7% 3.9% 0.1%
[libx264 @ 00000000023ad800] i16 v,h,dc,p: 50% 25% 6% 19%
[libx264 @ 00000000023ad800] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 11% 27% 3% 3% 5% 3% 6% 3%
[libx264 @ 00000000023ad800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 43% 11% 12% 5% 7% 9% 4% 7% 3%
[libx264 @ 00000000023ad800] i8c dc,h,v,p: 62% 11% 22% 5%
[libx264 @ 00000000023ad800] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 00000000023ad800] ref P L0: 64.4% 14.3% 16.1% 5.2%
[libx264 @ 00000000023ad800] ref B L0: 90.6% 7.5% 2.0%
[libx264 @ 00000000023ad800] ref B L1: 97.7% 2.3%
[libx264 @ 00000000023ad800] kb/s:1496.84
[aac @ 0000000000628120] Qavg: 754.761 -
swscale/aarch64 : use multiply accumulate and shift-right narrow
9 décembre 2019, par Sebastian Popswscale/aarch64 : use multiply accumulate and shift-right narrow
This patch rewrites the innermost loop of ff_yuv2planeX_8_neon to avoid zips and
horizontal adds by using fused multiply adds. The patch also uses ld1r to load
one element and replicate it across all lanes of the vector. The patch also
improves the clipping code by removing the shift right instructions and
performing the shift with the shift-right narrow instructions.I see 8% difference on an m6g instance with neoverse-n1 CPUs :
$ ffmpeg -nostats -f lavfi -i testsrc2=4k:d=2 -vf bench=start,scale=1024x1024,bench=stop -f null -
before : t:0.014015 avg:0.014096 max:0.015018 min:0.013971
after : t:0.012985 avg:0.013013 max:0.013996 min:0.012818Tested with `make check` on aarch64-linux.
Signed-off-by : Sebastian Pop <spop@amazon.com>
Reviewed-by : Clément Bœsch <u@pkh.me>
Signed-off-by : Michael Niedermayer <michael@niedermayer.cc> -
Reason for write EPIPE error in my implementation ?
25 mai 2019, par Chrisl446I currently have a small node.js express application for uploading images using sharp & thumbnails created from .mp4 videos using simple-thumbnail package/ffmpeg.
The app works perfectly when uploading an image, the file is uploaded sharp processes it, then passes it along and it ends up in my amazon s3 bucket as expected. No errors what so ever.
However, when I upload an mp4 video that I use to create and upload a thumbnail from by using simple-thumbnails genThumbnail() function, which uses ffmpeg child process, the thumbnail uploads successully to my s3 bucket, HOWEVER my app returns an EPIPE write error and NOT the url of the uploaded files url on S3.
What is causing this and how can I fix it, considering it’s pretty much working aside from the EPIPE error that is being returned ? Thanks ahead !
The packages of concern used are as follows :
multer-s3 <- this one with the transform option, not the standard multer-s3 package
const express = require('express');
const app = express();
const aws = require('aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3'); //github:gmenih341/multer-s3 version of multer-s3 with transform option
const sharp = require('sharp');
const genThumbnail = require('simple-thumbnail');
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Orgin, X-Requested-With, Content-Type, Accept, Authorization');
if (req.method === 'OPTIONS') {
res.header('Access-Control-Allow-Methods', 'POST');
return res.status(200).json({});
}
next();
});
let uniqueFileName;
let s3BucketName = 'bucketname';
let s3 = new aws.S3({
accessKeyId: ACCESS_KEY,
secretAccessKey: SECRET_KEY,
Bucket: s3BucketName
});
let upload = multer({
storage: multerS3({
s3: s3,
bucket: s3BucketName,
acl: 'public-read',
cacheControl: 'max-age=31536000',
contentType: multerS3.AUTO_CONTENT_TYPE,
shouldTransform: true,
transforms: [{
id: 'thumbnail',
key: function (req, file, cb) {
uniqueFileName = Date.now().toString();
cb(null, uniqueFileName + '.jpg')
},
transform: function (req, file, cb) {
if (file.mimetype == 'video/mp4') {
//When using simple-thumbnails' getThumbnail() on an mp4 video it uploads succesfully to S3 but node returns EPIPE write error
cb(null, genThumbnail(null, null, '250x?'))
} else {
//When using sharp to resize an image this works perfectly and retuns the JSON below with the files S3 URL
cb(null, sharp().jpeg())
}
}
}]
})
});
app.post('/upload', upload.array('theFile'), (req, res) => {
res.json({
fileS3Url: 'https://s3.amazonaws.com/'+ s3BucketName +'/' + uniqueFileName
});
});
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
app.use((error, req, res, next) => {
res.status(error.status || 500);
res.json({
error: {
message: error.message
}
});
});
module.exports = app;