
Recherche avancée
Autres articles (101)
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.
Sur d’autres sites (15303)
-
How to add watermark while record video using ffmpeg
7 décembre 2017, par Hitesh GehlotI am recording square video using following ffmpeg library. Square Video recorded successfully with audio but now i want to add watermark on video but my application crashed and getting error. Please help me how can i add watermark while record video.
Gradle dependency
compile(group: 'org.bytedeco', name: 'javacv-platform', version: '1.3') {
exclude group: 'org.bytedeco.javacpp-presets'
}
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3', classifier: 'android-arm'I am using following code for add watermark while record video
// add water mark
String imgPath = audioPath + "jodelicon.png";
String watermark = "movie=" + imgPath + " [logo];[in][logo]overlay=0:0:1:format=rgb [out]";
filters.add(watermark);Complete Code
class VideoRecordThread extends Thread {
private boolean isRunning;
@Override
public void run() {
List<string> filters = new ArrayList<>();
// Transpose
String transpose = null;
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(mCameraId, info);
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
switch (info.orientation) {
case 270:
// transpose = "transpose=clock_flip"; // Same as preview display
transpose = "transpose=cclock"; // Mirrored horizontally as preview display
break;
case 90:
// transpose = "transpose=cclock_flip"; // Same as preview display
transpose = "transpose=clock"; // Mirrored horizontally as preview display
break;
}
} else {
switch (info.orientation) {
case 270:
transpose = "transpose=cclock";
break;
case 90:
transpose = "transpose=clock";
break;
}
}
if (transpose != null) {
filters.add(transpose);
}
// Crop (only vertically)
int width = previewHeight;
int height = width * videoHeight / videoWidth;
String crop = String.format("crop=%d:%d:%d:%d",
width, height,
(previewHeight - width) / 2, (previewWidth - height) / 2);
filters.add(crop);
// Scale (to designated size)
String scale = String.format("scale=%d:%d", videoHeight, videoWidth);
filters.add(scale);
// add water mark
String imgPath = audioPath + "jodelicon.png";
String watermark = "movie=" + imgPath + " [logo];[in][logo]overlay=0:0:1:format=rgb [out]";
filters.add(watermark);
FFmpegFrameFilter frameFilter = new FFmpegFrameFilter(TextUtils.join(",", filters),
previewWidth, previewHeight);
frameFilter.setPixelFormat(avutil.AV_PIX_FMT_NV21);
frameFilter.setFrameRate(frameRate);
try {
frameFilter.start();
} catch (FrameFilter.Exception e) {
e.printStackTrace();
}
isRunning = true;
FrameToRecord recordedFrame;
while (isRunning || !mFrameToRecordQueue.isEmpty()) {
try {
recordedFrame = mFrameToRecordQueue.take();
} catch (InterruptedException ie) {
ie.printStackTrace();
try {
frameFilter.stop();
} catch (FrameFilter.Exception e) {
e.printStackTrace();
}
break;
}
if (mFrameRecorder != null) {
long timestamp = recordedFrame.getTimestamp();
if (timestamp > mFrameRecorder.getTimestamp()) {
mFrameRecorder.setTimestamp(timestamp);
}
long startTime = System.currentTimeMillis();
// Frame filteredFrame = recordedFrame.getFrame();
Frame filteredFrame = null;
try {
frameFilter.push(recordedFrame.getFrame());
filteredFrame = frameFilter.pull();
} catch (FrameFilter.Exception e) {
e.printStackTrace();
}
try {
mFrameRecorder.record(filteredFrame);
} catch (FFmpegFrameRecorder.Exception e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
long processTime = endTime - startTime;
mTotalProcessFrameTime += processTime;
Log.d(LOG_TAG, "This frame process time: " + processTime + "ms");
long totalAvg = mTotalProcessFrameTime / ++mFrameRecordedCount;
Log.d(LOG_TAG, "Avg frame process time: " + totalAvg + "ms");
}
Log.d(LOG_TAG, mFrameRecordedCount + " / " + mFrameToRecordCount);
mRecycledFrameQueue.offer(recordedFrame);
}
}
public void stopRunning() {
this.isRunning = false;
if (getState() == WAITING) {
interrupt();
}
}
public boolean isRunning() {
return isRunning;
}
}
</string>Error in logcat
android A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x18 in tid 320 (Thread-24542)
-
How can I increase the performance of this video watermarking call which seems to be only using 6% of my system's CPU ? Currently using ffmpeg
24 août 2023, par CodemonkeyI have a php script to add a watermark to an uploaded video, using ffmpeg


shell_exec("ffmpeg -y -i input.mp4 -i watermark.png -filter_complex $filter output.mp4")



The video is 36 seconds long, 33MB and 1080x1920, 24fps. The output video comes in at 8MB, scaled down to 540x960 with a PNG overlaid as a watermark.


The script takes about 3 seconds, averaging 320fps or so. For a one-off this would be ok, but I'm going to be processing hundreds/thousands of these at a time.


I have 128GB of ram and an EPYC 7502p (32cores/64threads), and both input and output files are on NVMe drives.


If I monitor
top
showing all my cores/threads in another window, with refresh delay set to a variety of things from 0.1 to 2 seconds, I'd guesstimate that this hits about 1/4 of my available threads, at about 25% utilisation each.

So it kind of feels like I COULD see a 16x speed increase if it hit all of them at 100%. That actually wouldn't be ideal, locking up the server of course, but when my CPU is sat at 99% idle 99% of the time, I feel it could do better - it'd be nice to see it hitting at least half the cores or utilising at least 50% of them when it does...


So, is there anything I can change with ffmpeg's config/build or the way I call it ? If this is as good as ffmpeg can do, are there better tools for the job ?


Thank you



EDIT :


A few things I've learnt since posting :


- 

-c:v libx264 -preset ultrafast
- marginal helpnice -n -10
- marginal help (changing to -20 is makes negligible difference)-c:a copy
- significant help, which I found surprising








FPS up from 320 to 540 using those 3 combined. I still feel there should be significantly more gains somewhere though...



Here's the output from the original script, if it helps :


ffmpeg version 4.2.9 Copyright (c) 2000-2023 the FFmpeg developers
 built with gcc 8 (GCC)
 configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' --extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libsrt --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzvbi --enable-avfilter --enable-avresample --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect
 libavutil 56. 31.100 / 56. 31.100
 libavcodec 58. 54.100 / 58. 54.100
 libavformat 58. 29.100 / 58. 29.100
 libavdevice 58. 8.100 / 58. 8.100
 libavfilter 7. 57.100 / 7. 57.100
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 5.100 / 5. 5.100
 libswresample 3. 5.100 / 3. 5.100
 libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
 Metadata:
 major_brand : M4V
 minor_version : 1
 compatible_brands: isomavc1mp42
 creation_time : 2023-07-03T14:55:37.000000Z
 Duration: 00:00:36.50, start: 0.000000, bitrate: 7315 kb/s
 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/unknown), 1080x1920 [SAR 1:1 DAR 9:16], 7213 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
 Metadata:
 creation_time : 2023-07-03T14:55:37.000000Z
 handler_name : ETI ISO Video Media Handler
 encoder : Elemental H.264
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)
 Metadata:
 creation_time : 2023-07-03T14:55:37.000000Z
 handler_name : ETI ISO Audio Media Handler
Input #1, png_pipe, from 'watermark.png':
 Duration: N/A, bitrate: N/A
 Stream #1:0: Video: png, rgba(pc), 1232x804 [SAR 11811:11811 DAR 308:201], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
 Stream #0:0 (h264) -> scale (graph 0)
 Stream #1:0 (png) -> scale (graph 0)
 overlay (graph 0) -> Stream #0:0 (libx264)
 Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x56510d488e00] using SAR=1/1
[libx264 @ 0x56510d488e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x56510d488e00] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x56510d488e00] 264 - core 157 r2980 34c06d1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - 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=30 lookahead_threads=5 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=24 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 'output.mp4':
 Metadata:
 major_brand : M4V
 minor_version : 1
 compatible_brands: isomavc1mp42
 encoder : Lavf58.29.100
 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 540x960 [SAR 1:1 DAR 9:16], q=-1--1, 24 fps, 12288 tbn, 24 tbc (default)
 Metadata:
 encoder : Lavc58.54.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) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 creation_time : 2023-07-03T14:55:37.000000Z
 handler_name : ETI ISO Audio Media Handler
 encoder : Lavc58.54.100 aac
frame= 876 fps=324 q=-1.0 Lsize= 7768kB time=00:00:36.45 bitrate=1745.5kbits/s speed=13.5x
video:7177kB audio:566kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.336181%
[libx264 @ 0x56510d488e00] frame I:9 Avg QP:21.46 size: 37765
[libx264 @ 0x56510d488e00] frame P:237 Avg QP:23.78 size: 17862
[libx264 @ 0x56510d488e00] frame B:630 Avg QP:28.03 size: 4405
[libx264 @ 0x56510d488e00] consecutive B-frames: 2.9% 2.5% 3.8% 90.9%
[libx264 @ 0x56510d488e00] mb I I16..4: 13.6% 65.9% 20.5%
[libx264 @ 0x56510d488e00] mb P I16..4: 5.2% 16.6% 4.1% P16..4: 32.8% 18.0% 12.5% 0.0% 0.0% skip:10.8%
[libx264 @ 0x56510d488e00] mb B I16..4: 1.1% 2.7% 0.2% B16..8: 35.3% 7.2% 2.5% direct: 3.3% skip:47.7% L0:37.0% L1:52.2% BI:10.8%
[libx264 @ 0x56510d488e00] 8x8 transform intra:65.0% inter:71.5%
[libx264 @ 0x56510d488e00] coded y,uvDC,uvAC intra: 54.7% 62.1% 11.5% inter: 17.9% 12.9% 0.5%
[libx264 @ 0x56510d488e00] i16 v,h,dc,p: 16% 28% 8% 47%
[libx264 @ 0x56510d488e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 23% 18% 6% 6% 7% 7% 7% 7%
[libx264 @ 0x56510d488e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 16% 11% 7% 9% 10% 8% 8% 8%
[libx264 @ 0x56510d488e00] i8c dc,h,v,p: 55% 20% 20% 5%
[libx264 @ 0x56510d488e00] Weighted P-Frames: Y:5.5% UV:3.4%
[libx264 @ 0x56510d488e00] ref P L0: 65.0% 18.8% 13.0% 3.0% 0.2%
[libx264 @ 0x56510d488e00] ref B L0: 95.0% 4.0% 1.1%
[libx264 @ 0x56510d488e00] ref B L1: 98.2% 1.8%
[libx264 @ 0x56510d488e00] kb/s:1610.57
[aac @ 0x56510d4865c0] Qavg: 22331.562



-
FFMPEG : How to add transparency to watermark logo ? Getting error : "Filter scale2ref has an unconnected output"
12 septembre 2023, par DannyHey guys I am new to Ffmpeg, I want to resize a watermark logo according to the video size and add transparency to it. The code I have is not working as expected.


This is the code


ffmpeg -i $initialFilePath -i $assetLogoFilePath -y -filter_complex '[1][0]scale2ref=w=oh*mdar:h=ih*0.03[logo][video];[1]format=rgba,colorchannelmixer=aa=0.5[logo];[video][logo]overlay=W-w-5:H-h-5' -c:a copy $temporaryDirectoryPath/$finalVideoPath"



I am getting this error
Filter scale2ref has an unconnected output
.

Please do help. Thanks