Recherche avancée

Médias (91)

Autres articles (24)

  • 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

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

Sur d’autres sites (6907)

  • Distributing a Python module with ffmpeg dependency

    17 août 2024, par arafasse

    I’m working on a Python module that harnesses some functionality from the FFmpeg framework - specifically, the ebur128 filter function. Ideally the module will stand on its own as an independent, platform agnostic tool for verifying that audio clips comply with EBU loudness standards. It’s designed so that end users need only perform one simple, (hopefully !) painless installation procedure, which will encompass the installation of both the FFmpeg libraries and my Python wrapper/GUI.

    


    Does anyone have general advice for creating Python module with external dependencies, or specific advice for standardizing the FFmpeg installation across platforms ? Distutils seems pretty helpful – are there other guidelines or standard practices for developing a neatly packaged Python tool ? I want to minimize any installation headaches for end users.

    


  • Nginx RTMP module not creating .m3u8 in correct format

    24 juin 2024, par Moiz Hassan

    I am creating a rtmp server using nginx-rtmp-module inside a docker container. Using OBS I can connect with the server to start a live stream. M3U8 and .ts files are being created successfully but the .m3u8 file isn't in format I want. The generated .m3u8 file is like :

    


    #EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:5
#EXT-X-TARGETDURATION:10


    


    but I want to generate .m3u8 file so it is simialr to this :

    


    #EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:10.000000,
0.ts
#EXTINF:10.000000,
1.ts
#EXTINF:10.000000,
2.ts
#EXTINF:10.000000,
3.ts
#EXTINF:10.000000,
4.ts
#EXTINF:10.000000,
5.ts



    


    . The following is the nginx config that I am using :

    


    user root;
worker_processes  auto;
#error_log  logs/error.log;

events {
    worker_connections  1024;
}

# RTMP configuration
rtmp {
    server {
        listen 1935; # Listen on standard RTMP port
        chunk_size 4000; 
        # ping 30s;
        # notify_method get;

        # This application is to accept incoming stream
        application live {
            live on; # Allows live input

            
            push rtmp://localhost:1935/show;    
            drop_idle_publisher 10s; 
        }

        # This is the HLS application
        application show {
            live on; # Allows live input from above application
            deny play all; # disable consuming the stream from nginx as rtmp

            
            hls on; # Enable HTTP Live Streaming
            hls_fragment 10;
            hls_playlist_length 0;
            hls_path /mnt/hls/;  # hls fragments path
            hls_nested on;

            hls_fragment_naming sequential;
            
            hls_cleanup off;
                    
        }


    }
}


http {
    sendfile off;
    tcp_nopush on;
    directio 512;
    # aio on;
    
    # HTTP server required to serve the player and HLS fragments
    server {
        listen 8080;
        
        # Serve HLS fragments
        location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            
            root /mnt;

            add_header Cache-Control no-cache; # Disable cache
            
            # CORS setup
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';
            
            # allow CORS preflight requests
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }
        }
        
        # Serve DASH fragments
        location /dash {
            types {
                application/dash+xml mpd;
                video/mp4 mp4;
            }

            root /mnt;
            
            add_header Cache-Control no-cache; # Disable cache


            # CORS setup
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';

            # Allow CORS preflight requests
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }
        }       
        
        # This URL provides RTMP statistics in XML
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet 
        }

        location /stat.xsl {
            # XML stylesheet to view RTMP stats.
            root /usr/local/nginx/html;
        }

    }
}



    


  • Converting MP3/MP4 to WAV in the Frontend Using ffmpegwasm with Next.js Results in Module Not Found Error

    31 mars 2024, par ryuma

    I'm attempting to use ffmpegwasm in a Next.js project to convert MP3 or MP4 files to WAV format directly in the frontend. However, I encounter a "Module not found" error during the process. I have made sure to use the latest version of Next.js. Below is the error message and the code snippet where the issue occurs. I'm seeking assistance to resolve this problem, as it has become quite troubling.

    


    error

    


    ./node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js:104:27 Module not found
  102 |         if (!this.#worker) {
  103 |             this.#worker = classWorkerURL ?
> 104 |                 new Worker(new URL(classWorkerURL, import.meta.url), {
      |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  105 |                     type: "module",
  106 |                 }) :
  107 |                 // We need to duplicated the code here to enable webpack


    


    "use client"&#xA;&#xA;import { FFmpeg } from "@ffmpeg/ffmpeg"&#xA;import { fetchFile, toBlobURL } from "@ffmpeg/util"&#xA;import React, { useEffect, useRef, useState } from "react"&#xA;&#xA;export default function TestPage() {&#xA;  const [loaded, setLoaded] = useState(false)&#xA;  const ffmpegRef = useRef(new FFmpeg())&#xA;  const messageRef = useRef(null)&#xA;&#xA;  useEffect(() => {&#xA;    load()&#xA;  }, [])&#xA;&#xA;  const load = async () => {&#xA;    const baseURL = "https://unpkg.com/@ffmpeg/core@0.12.6/dist/umd"&#xA;    const ffmpeg = ffmpegRef.current&#xA;    ffmpeg.on("log", ({ message }) => {&#xA;      if (messageRef.current) messageRef.current.innerHTML = message&#xA;      console.log(message)&#xA;    })&#xA;&#xA;    await ffmpeg.load({&#xA;      coreURL: await toBlobURL(`${baseURL}/ffmpeg-core.js`, "text/javascript"),&#xA;      wasmURL: await toBlobURL(`${baseURL}/ffmpeg-core.wasm`, "application/wasm"),&#xA;    })&#xA;    setLoaded(true)&#xA;  }&#xA;&#xA;  const convertToWav = async ({ target: { files } }) => {&#xA;    const ffmpeg = ffmpegRef.current&#xA;    const file = files[0]&#xA;&#xA;    await ffmpeg.writeFile("input.mp4", await fetchFile(file))&#xA;    await ffmpeg.exec(["-i", "input.mp4", "output.wav"])&#xA;    const data = await ffmpeg.readFile("output.wav")&#xA;&#xA;    const url = URL.createObjectURL(new Blob([data.buffer], { type: "audio/wav" }))&#xA;    const link = document.createElement("a")&#xA;    link.href = url&#xA;    link.setAttribute("download", "output.wav")&#xA;    document.body.appendChild(link)&#xA;    link.click()&#xA;  }&#xA;&#xA;  return (&#xA;    <div>&#xA;      {loaded ? (&#xA;        &lt;>&#xA;          <input type="file" accept="audio/mp3,video/mp4" />&#xA;          <p ref="{messageRef}"></p>&#xA;        >&#xA;      ) : (&#xA;        <button>Load ffmpeg-core</button>&#xA;      )}&#xA;    </div>&#xA;  )&#xA;}&#xA;&#xA;

    &#xA;

    Attempted Solutions :

    &#xA;

    I've ensured that I'm using the latest version of Next.js.&#xA;I've tried various configurations for the ffmpeg instance.

    &#xA;

    Questions :

    &#xA;

    How can I resolve the "Module not found" error when using ffmpegwasm with Next.js ?&#xA;Are there any specific configurations or setups within Next.js that I need to be aware of to successfully use ffmpegwasm ?&#xA;Any guidance or assistance with this issue would be greatly appreciated. Thank you in advance for your help.

    &#xA;