Recherche avancée

Médias (91)

Autres articles (90)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP 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 (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (11033)

  • embed video stream with custom meta data

    15 mai 2022, par Sergey Kolesnik

    I have an optical system that provides a UDP video stream.

    


    From device specification FAQ :

    


    


    Both single metadata (KLV) stream and compressed video (H.264) with metadata (KLV) are available on Ethernet link. Compressed video and metadata are coupled in the same stream compliant with STANAG 4609 standard. Each encoded video stream is encapsulated with the associated metadata within an MPEG-TS single program stream over Ethernet UDP/IP/ The video and metadata are synchronized through the use of timestamps.

    


    


    Also there are other devices that provide data about the state of an aircraft (velocity, coords, etc). This data should be displayed on a client GUI display alongside with video. Of course it has to be synchronized with the current video frame.

    


    One of the approaches I though of is to embed this data into the video stream. But I am not sure if it is possible or should I use another (than UDP) protocol for this purpose.

    


    Is it possible/reasonable to use such approach ? Is ffmpeg library suitable in this case ?
If not, what are the other ways to synchronize data with a video frame.
Latency is crucial. Although bandwidth is limited to 2-5 Mbps.

    



    


    It seems to be possible using ffmpeg : AVPacket can be provided with additional data using function av_packet_add_side_data which takes a preallocated buffer, size and a type AVPacketSideDataType.
However, I am not sure for now, which enum value of AVPacketSideDataType can be used for custom user-provided binary data.

    


    Something similar that might be used for my needs :

    


    How do I encode KLV packets to an H.264 video using libav*

    


  • How to use prebuilt FFmpeg in Android Studio

    26 mai 2016, par vxh.viet

    I’m sure this is a very basic question but since this is the my first time messing around with the NDK, a lot of thing is still very unclear to me.

    Use case :

    • I’m trying to develop a video scrubbing feature so fast and accurate frame seeking is crucial. I’ve tried most of the available players out there but the performance is still not up to my demand. That’s why I’m going down the FFmpeg route.

    • Basically, what I’m looking for is FFmpeg input seeking. I’ve tried WrtingMinds’ ffmpeg-android-java. However it is a file based implementation which means the out.jpg need to be written to external memory and read back which has a big hit on performance (roughly 1000 milliseconds for 1 seek).

    • That’s why I’m trying to built my own FFmpeg player to do the input seeking in JNI and push back the byte[] to be displayed in Java.

    Question : After a lot of struggling with the NDK, I’ve managed to set it up and successfully calling the JNI method from my Java code. The structure is as below :

    MyApp
     -app
     -MyFFmpegPlayer
       -build
       -libs
       -src
         -main
           -java
             -com.example.myffmpegplayer
               +HelloJNI.java
           -jni
             +MyFFmpegPlayer.c

    After some fail attempt to build FFmpeg on Windows, I’ve decided to use WritingMinds prebuilt FFmpeg. However, after extraction they just come up as plain ffmpeg files (not .so file) so I don’t really know how to use these.

    It would be a great gratitude, if someone can just chime in and give me a good starting point for my next step.

    Thank you so much for your time.

  • I need to implement video compression for files that exceed 5 MB in size

    27 septembre 2024, par KAVYA P

    I need to implement video compression for files that exceed 5 MB in size. I have tried several packages for this purpose, but they either do not work as expected or have significant security vulnerabilities. It's crucial for me to find a reliable and secure solution for compressing videos that meet this file size requirement. If you have any recommendations for libraries or tools that effectively handle video compression without compromising security, please let me know.

    


     const handleFileChange = async (&#xA;    event: React.ChangeEvent<htmlinputelement>&#xA;  ) => {&#xA;    const file = event.target.files?.[0];&#xA;    if (file) {&#xA;      const isImage = file.type.startsWith(&#x27;image/&#x27;);&#xA;      const MAX_FILE_SIZE = isImage ? 2 * 1024 * 1024 : 5 * 1024 * 1024; // 2 MB for images, 5 MB for videos&#xA;&#xA;      if (file.size > MAX_FILE_SIZE) {&#xA;        if (isImage) {&#xA;          alert(&#x27;Image file size exceeds 2 MB. Compressing the file...&#x27;);&#xA;          try {&#xA;            const compressedFile = await imageCompression(file, {&#xA;              maxSizeMB: 2,&#xA;              maxWidthOrHeight: 1920,&#xA;              useWebWorker: true,&#xA;            });&#xA;            onSelectFile({&#xA;              ...event,&#xA;              target: {&#xA;                ...event.target,&#xA;                files: [compressedFile] as unknown as FileList,&#xA;              },&#xA;            });&#xA;          } catch (error) {&#xA;            console.error(&#x27;Error compressing the image:&#x27;, error);&#xA;          }&#xA;        } else {&#xA;          alert(&#x27;Video file size exceeds 5 MB. Please choose a smaller video.&#x27;);&#xA;        }&#xA;      } else {&#xA;        onSelectFile(event); // Proceed with the file selection&#xA;      }&#xA;    }&#xA;  };&#xA;</htmlinputelement>

    &#xA;