Recherche avancée

Médias (0)

Mot : - Tags -/alertes

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (101)

  • Ecrire une actualité

    21 juin 2013, par

    Pré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, par

    MediaSPIP 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, par

    Multilang 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 Gehlot

    I 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&lt;>();
               // 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 Codemonkey

    I have a php script to add a watermark to an uploaded video, using ffmpeg

    &#xA;

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

    &#xA;

    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.

    &#xA;

    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.

    &#xA;

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

    &#xA;

    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.

    &#xA;

    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...

    &#xA;

    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 ?

    &#xA;

    Thank you

    &#xA;


    &#xA;

    EDIT :

    &#xA;

    A few things I've learnt since posting :

    &#xA;

      &#xA;
    • -c:v libx264 -preset ultrafast - marginal help
    • &#xA;

    • nice -n -10 - marginal help (changing to -20 is makes negligible difference)
    • &#xA;

    • -c:a copy - significant help, which I found surprising
    • &#xA;

    &#xA;

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

    &#xA;


    &#xA;

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

    &#xA;

    ffmpeg version 4.2.9 Copyright (c) 2000-2023 the FFmpeg developers&#xA;  built with gcc 8 (GCC)&#xA;  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=&#x27;-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&#x27; --extra-ldflags=&#x27;-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld &#x27; --extra-cflags=&#x27; &#x27; --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&#xA;  libavutil      56. 31.100 / 56. 31.100&#xA;  libavcodec     58. 54.100 / 58. 54.100&#xA;  libavformat    58. 29.100 / 58. 29.100&#xA;  libavdevice    58.  8.100 / 58.  8.100&#xA;  libavfilter     7. 57.100 /  7. 57.100&#xA;  libavresample   4.  0.  0 /  4.  0.  0&#xA;  libswscale      5.  5.100 /  5.  5.100&#xA;  libswresample   3.  5.100 /  3.  5.100&#xA;  libpostproc    55.  5.100 / 55.  5.100&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;input.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : M4V&#xA;    minor_version   : 1&#xA;    compatible_brands: isomavc1mp42&#xA;    creation_time   : 2023-07-03T14:55:37.000000Z&#xA;  Duration: 00:00:36.50, start: 0.000000, bitrate: 7315 kb/s&#xA;    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)&#xA;    Metadata:&#xA;      creation_time   : 2023-07-03T14:55:37.000000Z&#xA;      handler_name    : ETI ISO Video Media Handler&#xA;      encoder         : Elemental H.264&#xA;    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)&#xA;    Metadata:&#xA;      creation_time   : 2023-07-03T14:55:37.000000Z&#xA;      handler_name    : ETI ISO Audio Media Handler&#xA;Input #1, png_pipe, from &#x27;watermark.png&#x27;:&#xA;  Duration: N/A, bitrate: N/A&#xA;    Stream #1:0: Video: png, rgba(pc), 1232x804 [SAR 11811:11811 DAR 308:201], 25 tbr, 25 tbn, 25 tbc&#xA;Stream mapping:&#xA;  Stream #0:0 (h264) -> scale (graph 0)&#xA;  Stream #1:0 (png) -> scale (graph 0)&#xA;  overlay (graph 0) -> Stream #0:0 (libx264)&#xA;  Stream #0:1 -> #0:1 (aac (native) -> aac (native))&#xA;Press [q] to stop, [?] for help&#xA;[libx264 @ 0x56510d488e00] using SAR=1/1&#xA;[libx264 @ 0x56510d488e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2&#xA;[libx264 @ 0x56510d488e00] profile High, level 3.1, 4:2:0, 8-bit&#xA;[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&#xA;Output #0, mp4, to &#x27;output.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : M4V&#xA;    minor_version   : 1&#xA;    compatible_brands: isomavc1mp42&#xA;    encoder         : Lavf58.29.100&#xA;    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)&#xA;    Metadata:&#xA;      encoder         : Lavc58.54.100 libx264&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1&#xA;    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)&#xA;    Metadata:&#xA;      creation_time   : 2023-07-03T14:55:37.000000Z&#xA;      handler_name    : ETI ISO Audio Media Handler&#xA;      encoder         : Lavc58.54.100 aac&#xA;frame=  876 fps=324 q=-1.0 Lsize=    7768kB time=00:00:36.45 bitrate=1745.5kbits/s speed=13.5x&#xA;video:7177kB audio:566kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.336181%&#xA;[libx264 @ 0x56510d488e00] frame I:9     Avg QP:21.46  size: 37765&#xA;[libx264 @ 0x56510d488e00] frame P:237   Avg QP:23.78  size: 17862&#xA;[libx264 @ 0x56510d488e00] frame B:630   Avg QP:28.03  size:  4405&#xA;[libx264 @ 0x56510d488e00] consecutive B-frames:  2.9%  2.5%  3.8% 90.9%&#xA;[libx264 @ 0x56510d488e00] mb I  I16..4: 13.6% 65.9% 20.5%&#xA;[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%&#xA;[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%&#xA;[libx264 @ 0x56510d488e00] 8x8 transform intra:65.0% inter:71.5%&#xA;[libx264 @ 0x56510d488e00] coded y,uvDC,uvAC intra: 54.7% 62.1% 11.5% inter: 17.9% 12.9% 0.5%&#xA;[libx264 @ 0x56510d488e00] i16 v,h,dc,p: 16% 28%  8% 47%&#xA;[libx264 @ 0x56510d488e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 23% 18%  6%  6%  7%  7%  7%  7%&#xA;[libx264 @ 0x56510d488e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 16% 11%  7%  9% 10%  8%  8%  8%&#xA;[libx264 @ 0x56510d488e00] i8c dc,h,v,p: 55% 20% 20%  5%&#xA;[libx264 @ 0x56510d488e00] Weighted P-Frames: Y:5.5% UV:3.4%&#xA;[libx264 @ 0x56510d488e00] ref P L0: 65.0% 18.8% 13.0%  3.0%  0.2%&#xA;[libx264 @ 0x56510d488e00] ref B L0: 95.0%  4.0%  1.1%&#xA;[libx264 @ 0x56510d488e00] ref B L1: 98.2%  1.8%&#xA;[libx264 @ 0x56510d488e00] kb/s:1610.57&#xA;[aac @ 0x56510d4865c0] Qavg: 22331.562&#xA;

    &#xA;

  • FFMPEG : How to add transparency to watermark logo ? Getting error : "Filter scale2ref has an unconnected output"

    12 septembre 2023, par Danny

    Hey 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.

    &#xA;

    This is the code

    &#xA;

    ffmpeg -i $initialFilePath -i $assetLogoFilePath -y -filter_complex &#x27;[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&#x27; -c:a copy $temporaryDirectoryPath/$finalVideoPath"&#xA;

    &#xA;

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

    &#xA;

    Please do help. Thanks

    &#xA;