Recherche avancée

Médias (1)

Mot : - Tags -/publier

Autres articles (66)

  • 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

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

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (7093)

  • Capturing snapshot works on one RTSP stream and fails on another

    29 mars 2012, par Saurabh Gandhi

    I am using the VLM feature (over telnet) of VLC to re-stream a live camera RTSP stream using VOD (video on demand). This provides me with two options of viewing the live stream :

    1. Original camera stream
    2. VOD stream generated using VLM

    Both these streams are working fine when viewed within VLC player. I would like to take a snapshot from both these streams whenever the user presses a key. So, I am using command-line vlc interface to grab a snapshot, the command for which is :

    • Snapshot from original camera stream (Case I)
    cvlc -V dummy --video-filter scene --scene-format jpeg --scene-prefix myscene --start-time=0 --stop-time=1 --scene-replace --scene-path /var/www/ <original camera="camera" stream="stream"> vlc://quit;
    </original>
    • Snapshot from VOD stream (Case II)
    cvlc -V dummy --video-filter scene --scene-format jpeg --scene-prefix myscene --start-time=0 --stop-time=1 --scene-replace --scene-path /var/www/ <vod stream="stream" generated="generated" using="using" vlm="vlm"> vlc://quit;
    </vod>

    Now, case I seems to work fine but case II does not work, in-spite of confirming that both the live streams are working fine. What could be the problem ?

    Here are the logs of VLC when case II is executed on command-line :

    saurabh@saurabh-Latitude-E5510:~/Desktop/html_trial$ cvlc -V dummy --video-filter scene --scene-format jpeg --scene-prefix myscene --start-time=0 --stop-time=1 --scene-replace --scene-path /var/www/ rtsp://10.17.1.150:5544/vid1 vlc://quit;

    VLC media player 1.1.9 The Luggage (revision exported)
    Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS")
    Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE")
    [0x97c684c] dummy interface: using the dummy interface module...
    rc buffer underflow
    rc buffer underflow
    rc buffer underflow
    rc buffer underflow
    ^C[0x97be2ac] signals interface error: Caught Interrupt signal, exiting...

    Regards,

    Saurabh Gandhi

  • Capturing snapshot using vlc

    28 mars 2012, par Saurabh Gandhi

    I am using the VLM feature (over telnet) of VLC to re-stream a live camera RTSP stream using VOD (video on demand). This provides me with two options of viewing the live stream :

    1. Original camera stream
    2. VOD stream generated using VLM

    Both these streams are working fine when viewed within VLC player. I would like to take a snapshot from both these streams whenever the user presses a key. So, I am using command-line vlc interface to grab a snapshot, the command for which is :

    • Snapshot from original camera stream (Case I)
    cvlc -V dummy --video-filter scene --scene-format jpeg --scene-prefix myscene --start-time=0 --stop-time=1 --scene-replace --scene-path /var/www/ <original camera="camera" stream="stream"> vlc://quit;
    </original>
    • Snapshot from VOD stream (Case II)
    cvlc -V dummy --video-filter scene --scene-format jpeg --scene-prefix myscene --start-time=0 --stop-time=1 --scene-replace --scene-path /var/www/ <vod stream="stream" generated="generated" using="using" vlm="vlm"> vlc://quit;
    </vod>

    Now, case I seems to work fine but case II does not work, in-spite of confirming that both the live streams are working fine. What could be the problem ?

    Here are the logs of VLC when case II is executed on command-line :

    saurabh@saurabh-Latitude-E5510:~/Desktop/html_trial$ cvlc -V dummy --video-filter scene --scene-format jpeg --scene-prefix myscene --start-time=0 --stop-time=1 --scene-replace --scene-path /var/www/ rtsp://10.17.1.150:5544/vid1 vlc://quit;

    VLC media player 1.1.9 The Luggage (revision exported)
    Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS")
    Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE")
    [0x97c684c] dummy interface: using the dummy interface module...
    rc buffer underflow
    rc buffer underflow
    rc buffer underflow
    rc buffer underflow
    ^C[0x97be2ac] signals interface error: Caught Interrupt signal, exiting...

    Regards,

    Saurabh Gandhi

  • Is it possible to use something other than a circular buffer when using ffmpeg to pass RTSP video to a WebRTC client ?

    3 novembre 2024, par Doctico

    I have a Node application that uses ffmpeg to receive the RTSP stream of an ip camera (h264), and then pass send it using node-webrtc to a remote client. However, in my current implementation, ffmpeg only outputs 8192 byte chunks, which must be buffered in order to create the full frame that my current node-webrtc flow expects. This circular buffer results in a 1-2 second delay when the client is viewing the video. Is there any way to pass the stream through node-webrtc as the chunks come in, or at least extract complete frames so that circular buffering is not necessary ?

    &#xA;

    So far, I have tried this, which works but has a 1-2 second delay, and even higher delay with higher resolution cameras :

    &#xA;

        async startStream() {&#xA;&#xA;        const rtspUrl = &#x27;rtsp://my-rtsp-url&#x27;;&#xA;&#xA;        const videoSource = new wrtc.nonstandard.RTCVideoSource();&#xA;        const videoTrack = videoSource.createTrack();&#xA;&#xA;        const width = 640;&#xA;        const height = 480;&#xA;        const frameSize = width * height * 1.5; // YUV420p format&#xA;&#xA;        //circular buffer:&#xA;        let frameBuffer = Buffer.alloc(0);&#xA;        const frameStream = new Writable({&#xA;            write: (chunk, encoding, callback) => {&#xA;                frameBuffer = Buffer.concat([frameBuffer, chunk]);&#xA;&#xA;                while (frameBuffer.length >= frameSize) {&#xA;                    const frame = frameBuffer.slice(0, frameSize);&#xA;                    frameBuffer = frameBuffer.slice(frameSize);&#xA;&#xA;                    videoSource.onFrame({&#xA;                        width: width,&#xA;                        height: height,&#xA;                        data: new Uint8ClampedArray(frame)&#xA;                    });&#xA;                }&#xA;                callback();&#xA;            }&#xA;        });&#xA;&#xA;        const ffmpegProcess = ffmpeg(rtspUrl)&#xA;            .inputOptions([&#xA;                `-fflags nobuffer`,&#xA;                `-flags low_delay`,&#xA;                `-rtsp_transport tcp`,&#xA;                `-strict experimental`,&#xA;                `-analyzeduration 0`,&#xA;                `-threads 0`,&#xA;                `-hwaccel auto`&#xA;            ])&#xA;            .outputOptions([&#xA;                `-f rawvideo`,&#xA;                `-c:v rawvideo`,&#xA;                &#x27;-b:v&#x27;, streamId === 1 ? &#x27;2000k&#x27; : &#x27;1000k&#x27;,&#xA;                &#x27;-bf&#x27;, &#x27;0&#x27;,&#xA;                `-s ${width}x${height}`,&#xA;                `-pix_fmt yuv420p`,&#xA;                `-tune zerolatency`&#xA;            ])&#xA;            .on(&#x27;start&#x27;, (cmd) => console.log(&#x27;FFmpeg started:&#x27;, cmd))&#xA;            .on(&#x27;error&#x27;, error => {&#xA;                console.error(&#x27;FFmpeg error:&#x27;, error);&#xA;                this.stopStream();&#xA;            })&#xA;            .on(&#x27;end&#x27;, () => {&#xA;                console.log(&#x27;FFmpeg stream ended&#x27;);&#xA;                this.stopStream();&#xA;            })&#xA;&#xA;        ffmpegProcess&#xA;            .pipe(frameStream);&#xA;&#xA;        return videoTrack;&#xA;    }&#xA;

    &#xA;