Recherche avancée

Médias (91)

Autres articles (96)

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

  • Installation en mode standalone

    4 février 2011, par

    L’installation de la distribution MediaSPIP se fait en plusieurs étapes : la récupération des fichiers nécessaires. À ce moment là deux méthodes sont possibles : en installant l’archive ZIP contenant l’ensemble de la distribution ; via SVN en récupérant les sources de chaque modules séparément ; la préconfiguration ; l’installation définitive ;
    [mediaspip_zip]Installation de l’archive ZIP de MediaSPIP
    Ce mode d’installation est la méthode la plus simple afin d’installer l’ensemble de la distribution (...)

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (8994)

  • ffmpeg posting to nginx hangs after 90 minutes

    22 octobre 2018, par Harnek Gulati

    I’m using a very simple program to push an ffmpeg stream from my raspberry pi camera to a nginx server. However, it fails after 90 minutes, with almost every single Raspberry Pi I use (I have this code on 12 Raspberry Pis).
    Here is my ffmpeg command :

    raspivid -o - -t 0 -w 640 -h 480 -fps 25 | ffmpeg -re -i - -vcodec copy -hls_time 4 -f hls -hls_list_size 5 -hls_wrap 5 -threads 0  -timeout 5000 -max_reload 20000 -method PUT http://{}:{}/live/{}

    And here is my configuration for nginx.conf :

    #user nobody;
    load_module /usr/lib/nginx/modules/ndk_http_module.so;
    load_module /usr/lib/nginx/modules/ngx_http_lua_module.so;

    worker_processes auto;
    env CONTROL_SERVER_IP;


    #error_log /var/log/nginx/error.log;
    error_log /dev/stdout info;
    events {
       worker_connections 1024;
    }

    http {
       include     mime.types;
       default_type    application/octet-stream;
       access_log /dev/stdout;
       sendfile on;
       keepalive_requests 100000;
       keepalive_timeout 30;

     client_max_body_size 10M;
     server {
       listen 80;
       server_name localhost;

       location /live {
         root /var/static;
               client_body_temp_path   /var/static/client_temp;

               dav_methods PUT;
               create_full_put_path on;
               dav_access user:rw  group:r     all:r;

               types {
                   application/vnd.apple.mpegurl m3u8;
               }

               # Disable Cache
               add_header Cache-Control no-cache;
               include cors.conf;
     }
     }
    }

    daemon off;

    If anyone can help me, I would deeply appreciate it. I’ve been pulling my hair out trying to figure out this bug. On the raspberry pi, it hangs on this :

    [hls @ 0x25a8c90] Opening 'http://192.168.8.1:80/live/c35d8935-0a31-4d22-b71a-ad3f4f1d47631.ts' for writing
    frame=105609 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105518 speed=1.02xframe=105623 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105532 speed=1.02xframe=105636 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105545 speed=1.02xframe=105648 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105557 speed=1.02xframe=105662 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105571 speed=1.02xframe=105674 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105583 speed=1.02xframe=105688 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105597 speed=1.02xframe=105700 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105609 speed=1.02xframe=105714 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105623 speed=1.02x[hls muxer @ 0x25a9200] Duplicated segment filename detected: c35d8935-0a31-4d22-b71a-ad3f4f1d47631.ts
    [hls @ 0x25a8c90] Opening 'http://192.168.8.1:80/live/c35d8935-0a31-4d22-b71a-ad3f4f1d47632.ts' for writing

    And on the nginx logs, I get :

    192.168.10.242 - - [21/Oct/2018:22:34:01 +0000] "PUT /live/c35d8935-0a31-4d22-b71a-ad3f4f1d4763.m3u8 HTTP/1.1" 204 0 "-" "Lavf/57.83.100"
    192.168.10.242 - - [21/Oct/2018:22:35:04 +0000] "PUT /live/c35d8935-0a31-4d22-b71a-ad3f4f1d47633.ts HTTP/1.1" 408 0 "-" "Lavf/57.83.100"

    I need to set up a way to either a) keep consistent connections longer than 90 minutes or b) detect when the 408 error happens and stop it from hanging.

    FFMPEG version : 3.4.1

  • Nginx RTMP playback only possible when started before / directly after publishing

    18 avril 2017, par John Doee

    I have an NGINX RTMP Server setup, unfortunately the playback of the rtmp source is only possible for a few seconds after the specific stream has been published.

    Though connections that have already been opened e.g. Transcoding through FFMPEG works fine without any problems even for a few hours but they have to be started within a few seconds after the video signal is being published.

    So while the stream is transcoded and hence definitely available, FFProbe can’t find the specific stream ending with the following output (Debug mode) :

    [rtmp @ 0x7fadbdc0b5e0] Proto = rtmp, path = /live/4_9_lLV7GhFmTG0w, app = live, fname = 4_9_lLV7GhFmTG0w

    [rtmp @ 0x7fadbdc0b5e0] Server bandwidth = 5000000

    [rtmp @ 0x7fadbdc0b5e0] Client bandwidth = 5000000

    [rtmp @ 0x7fadbdc0b5e0] New incoming chunk size = 4096

    [rtmp @ 0x7fadbdc0b5e0] Creating stream...

    [rtmp @ 0x7fadbdc0b5e0] Sending play command for ’4_9_lLV7GhFmTG0w’

    [rtmp @ 0x7fadbdc0b5e0] Deleting stream...

    rtmp ://***:80/live/4_9_lLV7GhFmTG0w : Input/output error

    (Executing exactly the same command within two or three seconds after / before initial publishing of the video signal succeeds. Transcoding processes last for the whole duration of the stream) It seems that there is missing some header data that is used to identify the current stream after a few seconds.

    Any suggestions on this ? Thank you very much for your help in advance.

    The Server configuration looks like this :

    worker_processes  auto;
    events {
      worker_connections  1024;
    }

    Server Conf.

    chunk_size 4096;
    ping 30s;

    Application conf.

    application live {
           live on;

           access_log on;
           access_log /var/log/nginx.log;

           allow play all;
               exec_push /usr/local/ffmpeg/ffmpeg -i rtmp://localhost:80/$app/$name -async 1 -vsync -1
                           -c:v libx264 -c:a aac -b:v 256k -b:a 32k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://localhost:80/show/$name_low
                           -c:v libx264 -c:a aac -b:v 768k -b:a 96k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://localhost:80/show/$name_mid
                           -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://localhost:80/show/$name_high
                           -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://localhost:80/show/$name_hd720
                           -c copy -f flv rtmp://localhost:80/show/$name_src;

               recorder vod        {
                   record all;
                   record_path /efs/storage/vod;
                   record_append on;
               }

               exec_record_done /usr/local/ffmpeg/ffmpeg -y -i $path -c copy -copyts /efs/storage/vod/$basename.mp4;
           }

    As you can infer from the ffmpeg calls, there is one more application on this server (responsible for HLS delivery), though it should not affect this particular problem.

    Nginx Server information :

    nginx version: nginx/1.10.3
    built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
    built with OpenSSL 1.0.1k-fips 8 Jan 2015
    TLS SNI support enabled
    configure arguments: --add-module=/tmp/nginx-rtmp-module

    Update : The problem seems to be gone when reducing the worker processes to 1.

  • ffplay does not play an RTMP stream on VM with Ubuntu

    7 novembre 2020, par PiotrKulesza

    I am trying to run my RTMP stream on a VM with Ubuntu installed. The stream starts on the host computer from the obs program.

    


    Obs stream settings :

    


    Server: rtmp://192.168.56.102:1935/show
Stream key: stream


    


    Obs sends the stream to the nginx server on the VM with Ubuntu installed.

    


    RTMP configuration in nginx.conf

    


    rtmp {
    server {
        listen 1935; # Listen on standard RTMP port
        chunk_size 4000;

        application show {
            live on;
            # Turn on HLS
            hls on;
            hls_path /mnt/hls/;
            hls_fragment 3;
            hls_playlist_length 60;
            # disable consuming the stream from nginx as rtmp
            deny play all;
        }
    }
}


    


    When I start the stream it connects because it shows up in netstat.

    


    Output from netstat :

    


    Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 webapp-VirtualBox:1935  192.168.56.1:56924      ESTABLISHED


    


    But when I try to play stream with ffplay, it doesn't work. I am getting the following error.

    


    ffplay version 4.2.4-1ubuntu0.1 Copyright (c) 2003-2020 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
  configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
rtmp://192.168.56.102:1935/show/stream: Broken pipeq=    0B f=0/0 


    


    I have tried the following commands to play a stream but each one gives the same error.

    


    ffplay -i rtmp://192.168.56.102:1935/show/stream
ffplay -i rtmp://webapp-VirtualBox:1935/show/stream
ffplay -i rtmp://localhost:1935/show/stream


    


    I also tried VLC but this program also didn't work.
Can anyone tell me what I am doing wrong or forgot to play this stream ?