Recherche avancée

Médias (91)

Autres articles (65)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (10291)

  • Grabbing a single image from a MS VS .NET 6.0 C# WPF process always returns the same image

    12 mai 2023, par Wolfgang Kurz

    I am trying to develop a MS VS .NET 6.0 C# WPF application to digitize my Super 8 cine films. To grab the frames of the film I want to use FFMPEG because Accord.NET6.0 DirectShow does not work under MS VS 2022 .
I use
FFmpeg 64-bit static Windows build from www.gyan.dev
Version : 2022-09-29-git-8089fe072e-full_build-www.gyan.dev

    


    FFMPEG is invoked from a Process in ma application whicch sets the process FFMPEG start parameters. The webcam parameter is "USB Webcam" ( digital Celestron handheld microscope connected via USB - is DirectShow compatible )
The video resolution parameter "camRes" is "1280x960"

    


    public void UpdateImage(string aString)
    {
        string startPath = "C:" + MainWindow.bSl + "ffmpeg" + MainWindow.bSl + "bin" + MainWindow.bSl + "ffmpeg.exe ";

        MainWindow.aResult = "";
        System.Drawing.Bitmap result;
        ProcessStartInfo psi;
        psi = new ProcessStartInfo();
        psi.FileName = startPath;
        string targPath;
        psi.Arguments = "-f dshow -video_size" + MainWindow.dQuote + webCam + MainWindow.dQuote +
             " -framerate 10  -i video=" + MainWindow.dQuote + camRes + MainWindow.dQuote +
            " -frames:v 1 test%3d.bmp -update 1";
        string errors = "";
        string results = "";
        psi.CreateNoWindow = false;
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;
        psi.WindowStyle = ProcessWindowStyle.Normal;
        psi.WorkingDirectory = "C:" + MainWindow.bSl + "ffmpeg" + MainWindow.bSl + "bin" + MainWindow.bSl;

        using (Process theProcess = new Process())
        {
            theProcess.StartInfo = psi;
            theProcess.Start();

            theProcess.WaitForExit();
            while (theProcess.HasExited == false)
            {
                Thread.Sleep(50);
            }
            Thread.Sleep(50);

            try
            {
                if (File.Exists(pathCI) == true)
                {
                    DefineImage.ffmpegRes = new Bitmap(pathCI);
                    MainWindow.actMWInstance.UpdateMessage(DateTime.Now +
                        "- Old image disposed, new image grabbed");
                    File.Delete(pathCI);
                }
            }
            catch (System.Exception ex)
            {
                MainWindow.actMWInstance.UpdateMessage(DateTime.Now + "Image grabbing failed");
            }
            theProcess.Close();
            theProcess.Dispose();
        }

        if (aString.Length == 0)
        {
            File.Delete(pathCI);
            MainWindow.actMWInstance.DoMove("200", "0", true);
        }
        if (ffmpegRes != null)
        {
            BitmapSource aBMPSrc = BitmapConversion.ToWpfBitmap(ffmpegRes);
            IMGFrame.Source = aBMPSrc;
        }
        Show();
    }


    


    The attached screenshot shows the expected GUI content.
https://www.wkurz.com/wkurz/images/FFMPEGTEST.jpg

    


    My problem now is, when I try to refresh the image in the DefineDialog window, I always get the same image although the film has been moved by one frame.

    


    Is the first image cached by FFMPEG and always used again with the provided parameters.

    


    How to force FFMPEG to replace the image with a new one.

    



    


    -----------------------------------------------------------------------+this is additional information to the question.
I have managed to grab the film frame but still get always the same image during a session :*

    


    GUI of the WPF C# program

    


    It is obvious that the cine film frame has been successfully grabbbed.
The next step should be to work at the image ( correct brightness contrast, gama and colors) and then store the evaluated correction values that have later to be applied to the frames during a batch process, which automatically transports the film, grabs the frames and corrects the colors and then stores the frames as consecutively numbered images which than can be used to generate a video with FFMPEG :

    


    Now the problem I cannot overcome :

    


    In the definition dialog there are 2 buttons ( Refresh and New Image). The intension is to reread / regrab a frame, if the current frame is not optimal to evaluate the correction values.

    


    Whenever I click one of the buttons FFMPEG seems to grab an image, but FFMPEG provides always the same (identcial to the first already available image) to the caller ( a .NET C# Process in my proggram).

    


    The output stream is a single jpg image ( test%04d.jpg ) in a specified target library . Here follows the generated output which seem to be OK according to my knowledge.

    


    I want to ask all interested persons to look over this provided information - may be someone has an idea, what causes the fact, that FFMPEG 6.0 van Neumann always delivers the first image grabbed. in a session.
It seems that there is something cached and reused over and over again.

    


    DefImg 147: UpdateImage started ( Lines starting with DefImg or DefineImage are test output statements provided by the C# program)


    


    DefineImage 155 11.05.2023 17:53:20 C :\ffmpeg\bin\ffmpeg.exe -y -nostdin -f dshow -an -video_size 1280x960 -framerate 10 -i video="USB Microscope" -filter:v "smartblur=luma_radius=0.9:luma_strength=0.7:luma_threshold=0" -frames:v 1 C :\FilmProjList\TEST\TEST%%04d.jpg -update 1
DefineImage 180 ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration : —enable-gpl —enable-version3 —enable-static —disable-w32threads —disable-autodetect —enable-fontconfig —enable-iconv —enable-gnutls —enable-libxml2 —enable-gmp —enable-bzlib —enable-lzma —enable-libsnappy —enable-zlib —enable-librist —enable-libsrt —enable-libssh —enable-libzmq —enable-avisynth —enable-libbluray —enable-libcaca —enable-sdl2 —enable-libaribb24 —enable-libdav1d —enable-libdavs2 —enable-libuavs3d —enable-libzvbi —enable-librav1e —enable-libsvtav1 —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxavs2 —enable-libxvid —enable-libaom —enable-libjxl —enable-libopenjpeg —enable-libvpx —enable-mediafoundation —enable-libass —enable-frei0r —enable-libfreetype —enable-libfribidi —enable-liblensfun —enable-libvidstab —enable-libvmaf —enable-libzimg —enable-amf —enable-cuda-llvm —enable-cuvid —enable-ffnvcodec —enable-nvdec —enable-nvenc —enable-d3d11va —enable-dxva2 —enable-libvpl —enable-libshaderc —enable-vulkan —enable-libplacebo —enable-opencl —enable-libcdio —enable-libgme —enable-libmodplug —enable-libopenmpt —enable-libopencore-amrwb —enable-libmp3lame —enable-libshine —enable-libtheora —enable-libtwolame —enable-libvo-amrwbenc —enable-libilbc —enable-libgsm —enable-libopencore-amrnb —enable-libopus —enable-libspeex —enable-libvorbis —enable-ladspa —enable-libbs2b —enable-libflite —enable-libmysofa —enable-librubberband —enable-libsoxr —enable-chromaprint
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
Trailing option(s) found in the command : may be ignored.
Input #0, dshow, from 'video=USB Microscope' :
Duration : N/A, start : 5368.514437, bitrate : N/A
Stream #0:0 : Video : rawvideo (YUY2 / 0x32595559), yuyv422(tv, bt470bg/bt709/unknown), 1280x960, 10 fps, 10 tbr, 10000k tbn
Stream mapping :
Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
[swscaler @ 000001442fdcebc0] deprecated pixel format used, make sure you did set range correctly ( that I do not understand )
Last message repeated 3 times
[mjpeg @ 00000144278b0d80] removing common factors from framerate
Output #0, image2, to 'C :\FilmProjList\TEST\TEST%04d.jpg' :
Metadata :
encoder : Lavf60.3.100
Stream #0:0 : Video : mjpeg, yuvj422p(pc, bt470bg/bt709/unknown, progressive), 1280x960, q=2-31, 200 kb/s, 10 fps, 10 tbn
Metadata :
encoder : Lavc60.3.100 mjpeg
Side data :
cpb : bitrate max/min/avg : 0/0/200000 buffer size : 0 vbv_delay : N/A
frame= 0 fps=0.0 q=3.6 size= 0kB time=00:00:00.00 bitrate=N/A speed=N/A
    
frame= 1 fps=0.0 q=3.6 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x
    
video:45kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead : unknown

    


    DefineImage 248 11.05.2023 17:53:23 ( test output from, the C# program)
Das Programm "[11724] Cine2Video.exe" wurde mit Code 0 (0x0) beendet.

    


    


    


    Mit freundlichen Grüßen / Best regards
Ute & Wolfgang Kurz
Domaine : https://uwkurz.de ; Homepage : https://www.uwkurz.de/home
Location : 9° 11' 27,75" East, 48° 43' 32,80" North
E-Mail : wolfgang@uwkurz.de , ute@uwkurz.de
Gesendet über Glasfaser von HOMENET.de

    


    


  • 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

    


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


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


    


  • Why the result of FFmpeg capture process has no audio to create a webm file ?

    23 mars 2019, par RAM

    The result of my bellow FFmpeg command has no audio (is silent) :

    ffmpeg -f gdigrab -framerate 30 -i desktop -video_size 720x480 -c:v libvpx-vp9 -c:a libopus -b:v 1M -b:a 128K -auto-alt-ref 0 -crf 10 -preset ultrafast output.webm

    But this one has audio :

    ffmpeg -f gdigrab -i desktop -f dshow -i audio="Microphone (4- High Definition Audio Device)" output.mkv
    • How should I capture as webm file by using libopus or libvorbis ?
    • What is the problem in my first command ?

    My FFmpeg version :

    ffmpeg version N-93439-gb073fb9eea Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 8.2.1 (GCC) 20190212
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
                    --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab
                    --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
     libavutil      56. 26.100 / 56. 26.100
     libavcodec     58. 47.105 / 58. 47.105
     libavformat    58. 26.101 / 58. 26.101
     libavdevice    58.  7.100 / 58.  7.100
     libavfilter     7. 48.100 /  7. 48.100
     libswscale      5.  4.100 /  5.  4.100
     libswresample   3.  4.100 /  3.  4.100
     libpostproc    55.  4.100 / 55.  4.100