Recherche avancée

Médias (0)

Mot : - Tags -/interaction

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

Autres articles (112)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

    Afin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
    Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
    La documentation de l’utilisation du script d’installation (...)

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

Sur d’autres sites (10067)

  • How to stream live h.264 (IP camera) video to browser ? (bonus : low bandwidth and latency)

    4 octobre 2018, par Ryan Griggs

    I need to stream live h.264-encoded video from an IP camera to the browser, while supporting all common browsers and mobile devices (i.e. Android, Firefox, Chrome, IE, Safari (Mac OS and iOS)), and while keeping bandwidth requirements and latency to a minimum.

    MPEG-DASH requires browser support for Media Source Extensions, which are NOT supported by iOS. So that’s out.

    HLS is only supported by Safari and Edge.

    Also DASH seems to impose a latency of several seconds, which is not preferable.

    I would like to be able to chunk the incoming h.264 data (i.e. fragmented MP4), pass the chunked data to the browser via Websockets, then dump the chunks into some sort of player as they arrive.

    Broadway and its forks are a javascript h.264 decoder, and there is a Broadway-stream project that supports streams instead of files, but the docs are poor and I can only find examples of streaming when the source is not live.

    The most pressing question is : how do I hand the "chunked data" to a player or Video HTML element as it arrives at the browser ?

    I think the ideal setup would be to

    1. Use ffmpeg to transcode the original video to a chunked format (fMP4)
    2. Pipe the chunked output to a Node JS app which emits each chunk out through a Websocket to all connected viewers
    3. Viewers’ browsers dump each incoming chunk into some sort of decoder which renders the video.

    I’m clear up to the point of handing the received chunks to a video decoder. How can that be done without depending on Media Source Extensions, and allowing viewers to join the stream at random times ?

  • FFmpeg HLS input stream shows "Packet corrupt" and "timestamp discontinuity" errors when pushing to RTMP server [closed]

    22 mai, par Amul Bhatia

    I'm trying to restream an HLS URL (https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1') into my RTMP server with FFmpeg. The command I use is :

    


    ffmpeg -i "https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1" -c:v libx264 -preset veryfast -b:v 1000k -c:a aac -b:a 128k -f flv rtmp://69.62.85.241/live/streamkey


    


    getting error

    


    ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)
  configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
[hls @ 0x60992c0c8880] Skip ('#EXT-X-VERSION:3')
[hls @ 0x60992c0c8880] Skip ('#EXT-X-DISCONTINUITY')
    Last message repeated 9 times
[hls @ 0x60992c0c8880] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
    Last message repeated 1 times
Input #0, hls, from 'https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1':
  Duration: 00:01:00.00, start: 1.466667, bitrate: 0 kb/s
  Program 0
    Metadata:
      variant_bitrate : 0
  Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, unknown/bt709/iec61966-2-1), 854x480 [SAR 1:1 DAR 427:240], 30 fps, 30 tbr, 90k tbn
    Metadata:
      variant_bitrate : 0
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x60992cd68b00] using SAR=1/1
[libx264 @ 0x60992cd68b00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
[libx264 @ 0x60992cd68b00] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x60992cd68b00] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=abr mbtree=1 bitrate=1000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://69.62.85.241/live/streamkey':
  Metadata:
    encoder         : Lavf60.16.100
  Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv420p(tv, unknown/bt709/iec61966-2-1, progressive), 854x480 [SAR 1:1 DAR 427:240], q=2-31, 1000 kb/s, 30 fps, 1k tbn
    Metadata:
      variant_bitrate : 0
      encoder         : Lavc60.31.102 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/1000000 buffer size: 0 vbv_delay: N/A
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 6000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 12000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 18000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 24000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 30000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 36000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 42000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 48000000
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 54000000
[flv @ 0x60992c88a340] Failed to update header with correct duration.44.8kbits/s speed=22.6x
[flv @ 0x60992c88a340] Failed to update header with correct filesize.
[out#0/flv @ 0x60992cc36180] video:304kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 11.671993%
frame= 1800 fps=685 q=-1.0 Lsize=     339kB time=00:00:59.90 bitrate=  46.4kbits/s speed=22.8x
[libx264 @ 0x60992cd68b00] frame I:8     Avg QP: 2.07  size: 20330
[libx264 @ 0x60992cd68b00] frame P:454   Avg QP: 0.23  size:   218
[libx264 @ 0x60992cd68b00] frame B:1338  Avg QP: 0.21  size:    37
[libx264 @ 0x60992cd68b00] consecutive B-frames:  0.9%  0.0%  0.0% 99.1%
[libx264 @ 0x60992cd68b00] mb I  I16..4: 86.7%  0.3% 13.0%
[libx264 @ 0x60992cd68b00] mb P  I16..4:  0.1%  0.0%  0.0%  P16..4:  1.4%  0.0%  0.0%  0.0%  0.0%    skip:98.6%
[libx264 @ 0x60992cd68b00] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.1%  0.0%  0.0%  direct: 0.1%  skip:99.8%  L0:59.9% L1:40.1% BI: 0.0%
[libx264 @ 0x60992cd68b00] final ratefactor: -25.04
[libx264 @ 0x60992cd68b00] 8x8 transform intra:0.3% inter:1.8%
[libx264 @ 0x60992cd68b00] coded y,uvDC,uvAC intra: 13.5% 0.0% 0.0% inter: 0.2% 0.0% 0.0%
[libx264 @ 0x60992cd68b00] i16 v,h,dc,p: 90%  6%  4%  0%
[libx264 @ 0x60992cd68b00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 59% 12% 28%  0%  1%  1%  0%  0%  0%
[libx264 @ 0x60992cd68b00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 41% 18% 19%  4%  4%  4%  3%  4%  3%
[libx264 @ 0x60992cd68b00] i8c dc,h,v,p: 100%  0%  0%  0%
[libx264 @ 0x60992cd68b00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x60992cd68b00] kb/s:41.38


    


    However, I get repeated errors like :

    


    Packet corrupt (stream = 0, dts = xxxx)

    


    timestamp discontinuity (stream id=0)

    


    corrupt input packet in stream 0

    


    The stream partially works but seems unstable. How can I fix this error ?

    


    my nginx.conf

    


    rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application live {
            live on;
            record off;

            hls on;
            hls_path /var/www/hls;
            hls_fragment 5;                  # each TS segment = 5s
            hls_playlist_length 120;         # keep last 2 minutes of stream
            hls_cleanup off;                 # do not delete old segments
        }
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile on;
    keepalive_timeout 65;

    server {
        listen 81;

        location /hls {
            root /var/www;
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }

            add_header Cache-Control no-cache;
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
            add_header Access-Control-Allow-Headers 'Range';
            add_header Access-Control-Expose-Headers 'Content-Length, Content-Range';
        }
    }
}


    


    The same url is working fine when used in browser, but extracting the stream and putting it in RTMP server and accessing my RTMP server at rtmp ://69.62.85.241/live/streamkey not working

    


  • select a screen section ffmpeg c++ on macos

    21 avril 2022, par C1ngh10

    I am trying to record the screen on macos, with ffmpeg. I would like to be able to select a section of the screen instead of the whole desktop. I tried to set several options such as vf, with values like "crop=150:150:0:0", or video_size with value "150x150". The result was that the output video had the correct dimensions (150x150) but whole screen has been recorded instead of the specified section. Does anybody know another way to do that ?

    


    int ScreenRecorder::openVideoDevice() {
    value = 0;
    videoOptions = nullptr;
    pAVFormatContext = nullptr;

    pAVFormatContext = avformat_alloc_context();


    string dimension = to_string(width) + "x" + to_string(height);
    av_dict_set(&videoOptions, "video_size", dimension.c_str(), 0);   //option to set the dimension of the screen section to record
    value = av_dict_set(&videoOptions, "framerate", "25", 0);
    if (value < 0) {
        cerr << "Error in setting dictionary value (setting framerate)" << endl;
        exit(-1);
    }

    value = av_dict_set(&videoOptions, "preset", "ultrafast", 0);
    if (value < 0) {
        cerr << "Error in setting dictionary value (setting preset value)" << endl;
        exit(-1);
    }

    //The distance from the left edge of the screen or desktop
    value = av_dict_set(&videoOptions, "vf", ("crop=" + to_string(width) + ":" + to_string(height) + ":" + to_string(x_offset) + ":" +
        to_string(y_offset)).c_str(), 0);

    if (value < 0) {
        cerr << "Error in setting crop" << endl;
        exit(-1);
    }

    value = av_dict_set(&videoOptions, "pixel_format", "yuv420p", 0);
    if (value < 0) {
        cerr << "Error in setting pixel format" << endl;
        exit(-1);
    }
    
    pAVInputFormat = av_find_input_format("avfoundation");

    if (avformat_open_input(&pAVFormatContext, "1:none", pAVInputFormat, &videoOptions) != 0) {
        cerr << "Error in opening input device" << endl;
        exit(-1);
    }
    //get video stream infos from context
    value = avformat_find_stream_info(pAVFormatContext, nullptr);
    if (value < 0) {
        cerr << "Error in retrieving the stream info" << endl;
        exit(-1);
    }

    VideoStreamIndx = -1;
    for (int i = 0; i < pAVFormatContext->nb_streams; i++) {
        if (pAVFormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
            VideoStreamIndx = i;
            break;
        }
    }
    if (VideoStreamIndx == -1) {
        cerr << "Error: unable to find video stream index" << endl;
        exit(-2);
    }

    pAVCodecContext = pAVFormatContext->streams[VideoStreamIndx]->codec;
    pAVCodec = avcodec_find_decoder(pAVCodecContext->codec_id/*params->codec_id*/);
    if (pAVCodec == nullptr) {
        cerr << "Error: unable to find decoder video" << endl;
        exit(-1);
    }

    return 0;
}