Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (107)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

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

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

  • lavc/libaribcaption : add MSZ character related options

    17 octobre 2023, par TADANO Tokumei
    lavc/libaribcaption : add MSZ character related options
    

    This patch adds two MSZ (Middle Size ; half width) character
    related options, mapping against newly added upstream
    functionality :

    * `replace_msz_japanese`, which was introduced in version 1.0.1
    of libaribcaption.
    * `replace_msz_glyph`, which was introduced in version 1.1.0
    of libaribcaption.

    The latter option improves bitmap type rendering if specified
    fonts contain half-width glyphs (e.g., BIZ UDGothic), even
    if both ASCII and Japanese MSZ replacement options are set
    to false.

    As these options require newer versions of libaribcaption, the
    configure requirement has been bumped accordingly.

    Signed-off-by : TADANO Tokumei <aimingoff@pc.nifty.jp>

    • [DH] configure
    • [DH] doc/decoders.texi
    • [DH] libavcodec/libaribcaption.c
    • [DH] libavcodec/version.h
  • avcodec/h264dec : Use RefStruct-pool API instead of AVBufferPool API

    5 août 2022, par Andreas Rheinhardt
    avcodec/h264dec : Use RefStruct-pool API instead of AVBufferPool API
    

    It involves less allocations and therefore has the nice property
    that deriving a reference from a reference can't fail.
    This allows for considerable simplifications in
    ff_h264_(ref|replace)_picture().
    Switching to the RefStruct API also allows to make H264Picture
    smaller, because some AVBufferRef* pointers could be removed
    without replacement.

    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@outlook.com>

    • [DH] libavcodec/h264_picture.c
    • [DH] libavcodec/h264_slice.c
    • [DH] libavcodec/h264dec.c
    • [DH] libavcodec/h264dec.h
  • Transcode webcam blob to RTMP using ffmpeg.wasm

    29 novembre 2023, par hassan moradnezhad

    I'm trying transcode webcam blob data to a rtmp server from browser by using ffmpeg.wasm .
    &#xA;first, i create a MediaStream.

    &#xA;

            const stream = await navigator.mediaDevices.getUserMedia({&#xA;            video: true,&#xA;        });&#xA;

    &#xA;

    then, i create a MediaRecorder.

    &#xA;

            const recorder = new MediaRecorder(stream, {mimeType: "video/webm; codecs:vp9"});&#xA;        recorder.ondataavailable = handleDataAvailable;&#xA;        recorder.start(0)&#xA;

    &#xA;

    when data is available, i call a function called handleDataAvailable.
    &#xA;here is the function.

    &#xA;

        const handleDataAvailable = (event: BlobEvent) => {&#xA;        console.log("data-available");&#xA;        if (event.data.size > 0) {&#xA;            recordedChunksRef.current.push(event.data);&#xA;            transcode(event.data)&#xA;        }&#xA;    };&#xA;

    &#xA;

    in above code, i use another function which called transcode it's goal is going to send data to rtmp server using use ffmpeg.wasm.
    &#xA;here it is.

    &#xA;

    const transcode = async (inputVideo: Blob | undefined) => {&#xA;        const ffmpeg = ffmpegRef.current;&#xA;        const fetchFileOutput = await fetchFile(inputVideo)&#xA;        ffmpeg?.writeFile(&#x27;input.webm&#x27;, fetchFileOutput)&#xA;&#xA;        const data = await ffmpeg?.readFile(&#x27;input.webm&#x27;);&#xA;        if (videoRef.current) {&#xA;            videoRef.current.src =&#xA;                URL.createObjectURL(new Blob([(data as any)?.buffer], {type: &#x27;video/webm&#x27;}));&#xA;        }&#xA;&#xA;        // execute by node-media-server config 1&#xA;        await ffmpeg?.exec([&#x27;-re&#x27;, &#x27;-i&#x27;, &#x27;input.webm&#x27;, &#x27;-c&#x27;, &#x27;copy&#x27;, &#x27;-f&#x27;, &#x27;flv&#x27;, "rtmp://localhost:1935/live/ttt"])&#xA;&#xA;        // execute by node-media-server config 2&#xA;        // await ffmpeg?.exec([&#x27;-re&#x27;, &#x27;-i&#x27;, &#x27;input.webm&#x27;, &#x27;-c:v&#x27;, &#x27;libx264&#x27;, &#x27;-preset&#x27;, &#x27;veryfast&#x27;, &#x27;-tune&#x27;, &#x27;zerolatency&#x27;, &#x27;-c:a&#x27;, &#x27;aac&#x27;, &#x27;-ar&#x27;, &#x27;44100&#x27;, &#x27;-f&#x27;, &#x27;flv&#x27;, &#x27;rtmp://localhost:1935/live/ttt&#x27;]);&#xA;&#xA;        // execute by stack-over-flow config 1&#xA;        // await ffmpeg?.exec([&#x27;-re&#x27;, &#x27;-i&#x27;, &#x27;input.webm&#x27;, &#x27;-c:v&#x27;, &#x27;h264&#x27;, &#x27;-c:a&#x27;, &#x27;aac&#x27;, &#x27;-f&#x27;, &#x27;flv&#x27;, "rtmp://localhost:1935/live/ttt"]);&#xA;&#xA;        // execute by stack-over-flow config 2&#xA;        // await ffmpeg?.exec([&#x27;-i&#x27;, &#x27;input.webm&#x27;, &#x27;-c:v&#x27;, &#x27;libx264&#x27;, &#x27;-flags:v&#x27;, &#x27;&#x2B;global_header&#x27;, &#x27;-c:a&#x27;, &#x27;aac&#x27;, &#x27;-ac&#x27;, &#x27;2&#x27;, &#x27;-f&#x27;, &#x27;flv&#x27;, "rtmp://localhost:1935/live/ttt"]);&#xA;&#xA;        // execute by stack-over-flow config 3&#xA;        // await ffmpeg?.exec([&#x27;-i&#x27;, &#x27;input.webm&#x27;, &#x27;-acodec&#x27;, &#x27;aac&#x27;, &#x27;-ac&#x27;, &#x27;2&#x27;, &#x27;-strict&#x27;, &#x27;experimental&#x27;, &#x27;-ab&#x27;, &#x27;160k&#x27;, &#x27;-vcodec&#x27;, &#x27;libx264&#x27;, &#x27;-preset&#x27;, &#x27;slow&#x27;, &#x27;-profile:v&#x27;, &#x27;baseline&#x27;, &#x27;-level&#x27;, &#x27;30&#x27;, &#x27;-maxrate&#x27;, &#x27;10000000&#x27;, &#x27;-bufsize&#x27;, &#x27;10000000&#x27;, &#x27;-b&#x27;, &#x27;1000k&#x27;, &#x27;-f&#x27;, &#x27;flv&#x27;, &#x27;rtmp://localhost:1935/live/ttt&#x27;]);&#xA;&#xA;    }&#xA;

    &#xA;

    after running app and start streaming, console logs are as below.

    &#xA;

    ffmpeg >>>  ffmpeg version 5.1.3 Copyright (c) 2000-2022 the FFmpeg developers index.tsx:81:20&#xA;ffmpeg >>>    built with emcc (Emscripten gcc/clang-like replacement &#x2B; linker emulating GNU ld) 3.1.40 (5c27e79dd0a9c4e27ef2326841698cdd4f6b5784) index.tsx:81:20&#xA;ffmpeg >>>    configuration: --target-os=none --arch=x86_32 --enable-cross-compile --disable-asm --disable-stripping --disable-programs --disable-doc --disable-debug --disable-runtime-cpudetect --disable-autodetect --nm=emnm --ar=emar --ranlib=emranlib --cc=emcc --cxx=em&#x2B;&#x2B; --objcc=emcc --dep-cc=emcc --extra-cflags=&#x27;-I/opt/include -O3 -msimd128&#x27; --extra-cxxflags=&#x27;-I/opt/include -O3 -msimd128&#x27; --disable-pthreads --disable-w32threads --disable-os2threads --enable-gpl --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libopus --enable-zlib --enable-libwebp --enable-libfreetype --enable-libfribidi --enable-libass --enable-libzimg index.tsx:81:20&#xA;ffmpeg >>>    libavutil      57. 28.100 / 57. 28.100 index.tsx:81:20&#xA;ffmpeg >>>    libavcodec     59. 37.100 / 59. 37.100 index.tsx:81:20&#xA;ffmpeg >>>    libavformat    59. 27.100 / 59. 27.100 index.tsx:81:20&#xA;ffmpeg >>>    libavdevice    59.  7.100 / 59.  7.100 index.tsx:81:20&#xA;ffmpeg >>>    libavfilter     8. 44.100 /  8. 44.100 index.tsx:81:20&#xA;ffmpeg >>>    libswscale      6.  7.100 /  6.  7.100 index.tsx:81:20&#xA;ffmpeg >>>    libswresample   4.  7.100 /  4.  7.100 index.tsx:81:20&#xA;ffmpeg >>>    libpostproc    56.  6.100 / 56.  6.100 index.tsx:81:20&#xA;ffmpeg >>>  Input #0, matroska,webm, from &#x27;input.webm&#x27;: index.tsx:81:20&#xA;ffmpeg >>>    Metadata: index.tsx:81:20&#xA;ffmpeg >>>      encoder         : QTmuxingAppLibWebM-0.0.1 index.tsx:81:20&#xA;ffmpeg >>>    Duration: N/A, start: 0.000000, bitrate: N/A index.tsx:81:20&#xA;ffmpeg >>>    Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x480, SAR 1:1 DAR 4:3, 15.50 tbr, 1k tbn (default)&#xA;

    &#xA;

    the problem is when ffmpeg.wasm try to execute the last command.
    &#xA;await ffmpeg?.exec([&#x27;-re&#x27;, &#x27;-i&#x27;, &#x27;input.webm&#x27;, &#x27;-c&#x27;, &#x27;copy&#x27;, &#x27;-f&#x27;, &#x27;flv&#x27;, "rtmp://localhost:1935/live/ttt"]).
    &#xA;it just calls a GET Request, I will send further details about this request.
    &#xA;as u can see, i try to use lots of arg sample with ffmpeg?.exec, but non of them works.

    &#xA;

    the network tab in browser, after ffmpeg.wasm execute the command is as below.

    &#xA;

    enter image description here

    &#xA;

    it send a GET request to ws://localhost:1935/&#xA;and nothing happened after that.

    &#xA;

    for backend, i use node-media-server and here is my output logs when ffmpeg.wasm trying to execute the args

    &#xA;

    11/28/2023 19:33:18 55301 [INFO] [rtmp disconnect] id=JL569YOF&#xA;[NodeEvent on doneConnect] id=JL569YOF args=undefined&#xA;

    &#xA;

    at last here are my ques

    &#xA;

    &#xA;
      &#xA;
    • how can i achive this option ?
    • &#xA;

    • is it possible to share webcam to rtmp server ?
    • &#xA;

    &#xA;

    &#xA;