Recherche avancée

Médias (0)

Mot : - Tags -/flash

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

Autres articles (73)

  • Modifier la date de publication

    21 juin 2013, par

    Comment changer la date de publication d’un média ?
    Il faut au préalable rajouter un champ "Date de publication" dans le masque de formulaire adéquat :
    Administrer > Configuration des masques de formulaires > Sélectionner "Un média"
    Dans la rubrique "Champs à ajouter, cocher "Date de publication "
    Cliquer en bas de la page sur Enregistrer

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (9882)

  • 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;