Recherche avancée

Médias (91)

Autres articles (55)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • Les statuts des instances de mutualisation

    13 mars 2010, par

    Pour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
    Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)

  • L’agrémenter visuellement

    10 avril 2011

    MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
    Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté.

Sur d’autres sites (10241)

  • Stack architecture for handling video uploadings

    18 septembre 2017, par Lunf

    I have Springboot app (on EC2 xlarge) which handle multi-part upload video from mobile apps. The average video file is 250 350MB which currently stored in local disk before ffmpeg thread is started to convert and upload to S3 then will be removed from local disk.

    The problem is the app server could not keep up with number of uploads concurrently (5 videos), and CPU, RAM is maxed out.

    My question is what is the strategies (architecture) to scale in order to handle more uploads concurrently and should I need to rewrite the app server in specific way to meet my goal, let say 50 videos.

    Thank you

  • How to receive video chunks from MediaRecorder to ffmpeg

    18 juillet 2024, par Aviato

    I am trying to make a screen recording application and wants to stream the recording in real time to my backend in order to save it as mp4 file and store it in AWS S3 bucket. I first initialized the Media Recorder instance which would accept the stream from getUserDisplay and would send chunk to my backend every two second using websocket.

    


    this.socket = new WebSocket(`ws://localhost:4000/api/stream`);
await this.socket.connect();
const recorder = new MediaRecorder(stream, {
     mimeType: 'video/webm;codecs=H264',
     videoBitsPerSecond: 8000000
});

     recorder.ondataavailable = (e: BlobEvent) => {
            this.socket.sendChunk(e.data)
       
        }
  
        recorder.onstart = (event: Event) => {
            console.log("started :)");
        };
    
        recorder.start(2000);


    


    BACKEND

    


    In my backend I opened a websocket connection and started a FFMPEG process that would take input as a stream and pipe out an mp4 video.

    


    print(f" Client connected: {websocket.client.host}")

    command = [
        'ffmpeg', 
        '-y',
        '-i', 
        '-', 
        '-codec:v', 
        'copy', 
        '-f', 'mp4',
        "testmain.mp4",
        # "-"
        # f'output{queueNumber}.mp4',
    ]

    process = subprocess.Popen(command, stdin=subprocess.PIPE)


    try:
        while True:
            try:
                data = await websocket.receive_bytes()
                if not data:
                    break
                process.stdin.write(data)
            except RuntimeError:
                break


    


    When I tested this approach, there are lots of problem,

    


      

    1. Even though I specified the frame rate in my getUserDisplay of 60, I am getting a very slow version video of 30fps by ffmpeg
    2. 


    3. Sometimes the final video file is corrupted or getting this message :- enter image description here
    4. 


    5. Video Bitrate in the final video is extremely low, something like 100 kbps
    6. 


    


    I know that it could be my fault of the way I setup the application, but I am not sure how can I approach it the right way and being able to record the user's screen efficiently

    


  • Redis corrupted my Qthread, cv2 and ffmpeg system. Assertion fctx->async_lock failed at src/libavcodec/pthread_frame.c:167 [closed]

    8 novembre 2024, par Alperen Ölçer

    I used to have a websocket communication in my system but I wanted to change to redis. Afterwards it started to crash when cap.set function calls with error 'Assertion fctx->async_lock failed at src/libavcodec/pthread_frame.c:167' I normally run this function inside of a QThread. Any idea why its happening. Only redis changes affected it and the changes are so innocent. I am using ubuntu 22.04 and opencv 4.8.1 builded with cuda 11.5 cudnn 8.6,ffmpeg 769c36b, gcc 10, pyQt 5.15, python3.10.