Recherche avancée

Médias (1)

Mot : - Tags -/portrait

Autres articles (18)

  • L’utiliser, en parler, le critiquer

    10 avril 2011

    La première attitude à adopter est d’en parler, soit directement avec les personnes impliquées dans son développement, soit autour de vous pour convaincre de nouvelles personnes à l’utiliser.
    Plus la communauté sera nombreuse et plus les évolutions seront rapides ...
    Une liste de discussion est disponible pour tout échange entre utilisateurs.

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

Sur d’autres sites (6518)

  • Decoder error not supported error when render 360 video on web application

    19 avril 2024, par Mattia Pompita

    I'm developing a simple scene with A-Frame and React.JS where there is a videosphere that will create and render when video are fully loaded and ready to play.

    


    My goal is to render 4k (to device who can reproduce it) video on videosphere to show at the users the environment.
On desktop versions all works fine also with 4K videos while on mobile works only for 1920x1080.

    


    I already check if my phone can render a 4k texture video and it can render untill 4096, I checked also that video.videoWidth are 4096.

    


    The error I have is with decoder

    


    MediaError {code: 4, message: 'DECODER_ERROR_NOT_SUPPORTED: video decoder initialization failed'}


    


    This error will show only on mobile, I can see it through Chrome Developer tools, I already try to re-encode both with Handbrake and ffmpeg but always the same error will appear on mobile.

    


    My video is hosted on Firebase and have this resolution 4096x2048
I'm testing on Google Pixel 7 already checked if WEBGL can render 4k texture on it

    


    I can't understand why decoder works fine on Desktop and not on mobile only with 4k video and with 1920x1080 it works

    


    This is the only component rendered on page

    


    import React, { useEffect, useRef } from 'react';

const XIV_360_Abbazia_San_Silvestro_4K = () => {
  const assetsRef = useRef(null);
  const videoRef = useRef(null);
  const sceneRef = useRef(null);


  return (
    
      
        > {
            console.log('CAN PLAY THROUGH');
            let videoSphere = document.createElement('a-videosphere');
            videoSphere.setAttribute('src', '#video360');
            sceneRef.current.appendChild(videoSphere);
          }}
        />
      
      

      > {
          videoRef.current.play();
        }}
      >
        PLAY
      
    
  );
};

export default XIV_360_Abbazia_San_Silvestro_4K;


    


  • Watching a livestream that is being ripped by ffmpeg to disk - file updating problem

    22 mai 2021, par merlin

    I am automatically recording daily tv news with ffmpeg, so I can watch them later.

    


    ffmpeg -i https://mcdn.daserste.de/daserste/de/master.m3u8 -c copy Tagesschau.mkv


    


    This works. But let's say ffmpeg recorded for 2 minutes and I open the currently saved file and begin to watch the video stops after some time.
It doesn't continue playing (but ffmpeg is still recording so there must be more video).

    


    Strange thing is even by closing and reopening the file I don't see the new content. Sometimes I have to wait 1-2 minutes till the new content shows up. But in the file manager I see the file is growing in size continuous.

    


    But when I copy/paste the file e.g. in the same directory and reopen the file I can immediately see the complete video content up to date recorded.

    


    Maybe it has to do with file system write buffer ? I tried on ZFS and ext4 (mounted on a samba share). By copy/paste I "trigger" the file system to update the file content ?

    


    Is there a workaround so when I start watching it will play without stopping ?

    


  • Python buffered IO ending early streaming with multiple pipes

    5 octobre 2022, par Malibu

    I'm trying to make a continuous livestream of videos downloaded via yt-dlp. I need to port this (working) bash command into Python.

    


    (
    youtube-dl -v --buffer-size 16k https://youtube.com/watch?v=QiInzFHIDp4 -o - | ffmpeg -i - -f mpegts -c copy - ;
    youtube-dl -v --buffer-size 16k https://youtube.com/watch?v=QiInzFHIDp4 -o - | ffmpeg -i - -f mpegts -c copy - ;
) | ffmpeg -re -i - -c:v libx264 -f flv rtmp://127.0.0.1/live/H1P_x5WPF


    


    My Python attempt is cutting off the last 2 seconds of each video. My suspicion is that although the first pipe, yt-dlp, has an empty stdout, there is still data travelling between the second and third pipe. I haven't been able to figure out a way to properly handle the data between those two pipes at the end of the video.

    


    from subprocess import Popen, PIPE, DEVNULL

COPY_BUFSIZE = 65424

playlist = [
    {
        # 15 second video
        "url": "https://youtube.com/watch?v=QiInzFHIDp4"
    },
    {
        # 15 second video
        "url": "https://youtube.com/watch?v=QiInzFHIDp4"
    },
    {
        # 15 second video
        "url": "https://youtube.com/watch?v=QiInzFHIDp4"
    },
]

if __name__ == "__main__":
    stream_cmd = [
        "ffmpeg", "-loglevel", "error",
        "-hide_banner", "-re", "-i", "-",
        "-c:v", "libx264",
        "-f", "flv",
        "-b:v", "3000k", "-minrate", "3000k",
        "-maxrate", "3000k", "-bufsize", "3000k",
        "-r", "25", "-pix_fmt", "yuv420p",
        "rtmp://127.0.0.1/live/H1P_x5WPF"
    ]
    print(f'Stream command:\n"{" ".join(stream_cmd)}"')

    encoder_cmd = [
        "ffmpeg", "-re", "-i", "-", "-f", "mpegts",
        "-c", "copy", "-"
    ]
    print(f'Encoder command:\n"{" ".join(encoder_cmd)}"')

    stream_p = Popen(stream_cmd, stdin=PIPE, stderr=DEVNULL)

    for video in playlist:
        yt_dlp_cmd = [
            "yt-dlp", "-q",
            video["url"],
            "-o", "-"
        ]

        print("Now playing: " + video["url"])

        with Popen(yt_dlp_cmd, stdout=PIPE) as yt_dlp_p:
            with Popen(encoder_cmd, stdin=PIPE, stdout=PIPE, stderr=DEVNULL) as encoder_p:
                while True:
                    yt_dlp_buf = yt_dlp_p.stdout.read(COPY_BUFSIZE)
                    print("READ: yt_dlp")
                    if not yt_dlp_buf:
                        print("yt-dlp buffer empty")
                        # Handle any data in 2nd/3rd pipes before breaking?
                        break

                    written = encoder_p.stdin.write(yt_dlp_buf)
                    print("WRITE: encoder. Bytes: " + str(written))

                    encoder_buf = encoder_p.stdout.read(COPY_BUFSIZE)
                    # if not encoder_buf:
                    #     print("encoder_buf empty")
                    #     break
                    print("READ: encoder")

                    stream_bytes_written = stream_p.stdin.write(encoder_buf)
                    print("WRITE: stream, Bytes: " + str(stream_bytes_written))


    


    Running Python 3.6.9 on MacOS.