
Recherche avancée
Médias (3)
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (48)
-
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 -
L’espace de configuration de MediaSPIP
29 novembre 2010, parL’espace de configuration de MediaSPIP est réservé aux administrateurs. Un lien de menu "administrer" est généralement affiché en haut de la page [1].
Il permet de configurer finement votre site.
La navigation de cet espace de configuration est divisé en trois parties : la configuration générale du site qui permet notamment de modifier : les informations principales concernant le site (...) -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (7151)
-
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;