Advanced search

Medias (91)

Other articles (19)

  • Pas question de marché, de cloud etc...

    10 April 2011

    Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
    sur le web 2.0 et dans les entreprises qui en vivent.
    Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
    Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
    le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
    Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...)

  • Keeping control of your media in your hands

    13 April 2011, by

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 March 2010, by

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3); le plugin champs extras v2 nécessité par (...)

On other websites (3381)

  • nginx rtmp module fails to stream MP4 format

    23 April 2019, by Keivan

    I have media server running on Nginx rtmp module + ffmpeg
    It is working 100% fine with FLV format but with MP4 it does not create .m3u8 file and stream chunks.
    here is nginx.conf file:

    worker_processes  auto;

    events {
       worker_connections  1024;
       multi_accept on;
    }

    rtmp {
     server {
       listen 1935;
       chunk_size 4000;

       application live {
           live on;
           record off;

           hls on;
       hls_path        /HLS/live;

           hls_keys on;
           hls_key_path       /HLS/keys;
           hls_key_url        https://fakeurl:8441/keys/;
       hls_fragments_per_key   10;

           hls_fragment 3s;
           hls_playlist_length 10s;
           deny play all;
       }
     }
    }

    http {
       include       mime.types;
       tcp_nopush on;
       directio 512;
       default_type  application/octet-stream;
       sendfile      off;

       server {
           listen       8441 ssl;
       server_name  fakeurl;

           ssl_certificate /home/ubuntu/Keys/server.crt;
           ssl_certificate_key /home/ubuntu/Keys/server.key;

           location /keys {
               root /HLS/;
           }

           location / {
               root   html;
               index  index.html index.htm;
           }

           location /live {

               # Disable cache
               add_header 'Cache-Control' 'no-cache';

               # CORS setup
               add_header 'Access-Control-Allow-Origin' '*' always;
               add_header 'Access-Control-Expose-Headers' 'Content-Length';

               # allow CORS preflight requests
               if ($request_method = 'OPTIONS') {
                   add_header 'Access-Control-Allow-Origin' '*';
                   add_header 'Access-Control-Max-Age' 1728000;
                   add_header 'Content-Type' 'text/plain charset=UTF-8';
                   add_header 'Content-Length' 0;
                   return 204;
               }

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

               root /HLS/;
           }


           #error_page  404              /404.html;

           # redirect server error pages to the static page /50x.html
           #
           error_page   500 502 503 504  /50x.html;
           location = /50x.html {
               root   html;
           }
       }
    }

    and this is FFmpeg command for creating converting my RTP stream to MP4 and stream it to RTMP server:

    ffmpeg -protocol_whitelist 'file,udp,rtp' -i input.sdp -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 -g 30 -r 30 -c:a aac -b:v 400k -preset ultrafast -tune zerolatency -movflags frag_keyframe -f mp4 rtmp://0.0.0.0:1935/live/stream1

    I can confirm ffmpeg works fine and it is stable with the input stream, if I change output format to flv, rtmp server creates stream1.m3u8 file and everything is fine. But with mp4, mov or m4v formats nginx does not create anything.

  • PHP: Video file is located in s3, need to find duration a video using getid3 php module

    14 March 2019, by kaliyappan
       $request = $s3Client->createPresignedRequest($cmd, '+20 minutes');
       echo $presignedUrl = (string)$request->getUri();

       echo "\n";
       //$mp3File = '/home/kaliyappan/test-HD.mov';
       $getId3 = new GetId3();
       $audio = $getId3->analyze($presignedUrl);
       //echo '<pre>';
       print_r($audio);
       exit;
    </pre>

    I have a video file located in s3, using PHP "phansys/getid3": "^2.1@dev" module need to calculate duration. Created pre-signed URL try to access that file but it returns "could not open that file".

    [GETID3_VERSION] => 1.9.4-20120530
    [error] => Array
       (
           [0] => Could not open "

    Please suggest any other way to do this, but if I directly give video file path which is in my server that’s work perfectly.

  • How to load a custom java module into Wowza Streaming Engine?

    27 October 2018, by kw3rti

    I’ve followed the tutorial below step by step, however, the module I’ve created does not appear to load or execute, as I’m not seeing any log entries relating to the getLogger calls in the Wowza Streaming Engine. More specifically, I have created a new Wowza project containing a new module (see code below). Eclipse has then created a jar file in the lib folder of the install directory. I have added the module to a live application on the streaming server. I have also edited the Application.xml file to include the new module.

    To hopefully run the module I’ve written, I am streaming an mp4 file using ffmpeg (according to documentation here) to the streaming engine (via the live application), which I can see in the test players. My understanding was that this would trigger at least one of the event listeners in the module. However, nothing appears to come up in the logs. The only entries related to the stream that I can see are shown below.

    I’ve been trying to debug what’s going wrong for quite a while now, so I’d appreciate any suggestions of what might fix the issue.

    https://www.wowza.com/docs/How-to-extend-Wowza-Streaming-Engine-using-Java

    public class GCStreamModule extends ModuleBase {

       public void onAppStart(IApplicationInstance appInstance) {
           String fullname = appInstance.getApplication().getName() + "/" + appInstance.getName();
           getLogger().info("onAppStart: " + fullname);
       }

       public void onAppStop(IApplicationInstance appInstance) {
           String fullname = appInstance.getApplication().getName() + "/" + appInstance.getName();
           getLogger().info("onAppStop: " + fullname);
       }

       public void onConnect(IClient client, RequestFunction function, AMFDataList params) {
           getLogger().info("onConnect: " + client.getClientId());
       }

       public void onConnectAccept(IClient client) {
           getLogger().info("onConnectAccept: " + client.getClientId());
       }

       public void onConnectReject(IClient client) {
           getLogger().info("onConnectReject: " + client.getClientId());
       }

       public void onDisconnect(IClient client) {
          getLogger().info("onDisconnect: " + client.getClientId());
       }

       public void onStreamCreate(IMediaStream stream) {
           getLogger().info("onStreamConnect");
       }

       public void onMediaStreamCreate(IMediaStream stream){
           getLogger().info("onMediaStreamCreate: " + stream.getSrc());
       }

    }

    Screenshot1
    Screenshot2