Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (71)

  • MediaSPIP Player : les contrôles

    26 mai 2010, par

    Les contrôles à la souris du lecteur
    En plus des actions au click sur les boutons visibles de l’interface du lecteur, il est également possible d’effectuer d’autres actions grâce à la souris : Click : en cliquant sur la vidéo ou sur le logo du son, celui ci se mettra en lecture ou en pause en fonction de son état actuel ; Molette (roulement) : en plaçant la souris sur l’espace utilisé par le média (hover), la molette de la souris n’exerce plus l’effet habituel de scroll de la page, mais diminue ou (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Création définitive du canal

    12 mars 2010, par

    Lorsque votre demande est validée, vous pouvez alors procéder à la création proprement dite du canal. Chaque canal est un site à part entière placé sous votre responsabilité. Les administrateurs de la plateforme n’y ont aucun accès.
    A la validation, vous recevez un email vous invitant donc à créer votre canal.
    Pour ce faire il vous suffit de vous rendre à son adresse, dans notre exemple "http://votre_sous_domaine.mediaspip.net".
    A ce moment là un mot de passe vous est demandé, il vous suffit d’y (...)

Sur d’autres sites (10246)

  • nginx : [emerg] invalid port in url "http://192.168.0.100:80/live" in nginx.conf - Restreaming OBS to LAN

    17 novembre 2018, par popek069

    I want to restream OBS to LAN. So I set up nginx server. The server receive stream from OBS using RTMP and restreams it to HTTP to view from another device.
    Streaming from OBS works, but when I start nginx I get an error

    PS C:\Users\popek\Downloads\nginx> .\nginx.exe -s reload
    nginx: [emerg] invalid port in url "http://192.168.0.100:80/live" in C:\Users\popek\Downloads\nginx/conf/nginx.conf:187

    I’m new to nginx and I’m running Windows 10, nginx server and OBS are on the same pc with ip 192.168.0.100
    I’d like to also reencode stream using ffmpeg if it’s possible. I know ffmpeg, I don’t know only how to set input and output.

    Config : (nginx.conf)

    #user  nobody;
    # multiple workers works !
    worker_processes  2;

    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;

    #pid        logs/nginx.pid;


    events {
       worker_connections  8192;
       # max value 32768, nginx recycling connections+registry optimization =
       #   this.value * 20 = max concurrent connections currently tested with one worker
       #   C1000K should be possible depending there is enough ram/cpu power
       # multi_accept on;
    }


    http {
       #include      /nginx/conf/naxsi_core.rules;
       include       mime.types;
       default_type  application/octet-stream;

       #log_format  main  '$remote_addr:$remote_port - $remote_user [$time_local] "$request" '
       #                  '$status $body_bytes_sent "$http_referer" '
       #                  '"$http_user_agent" "$http_x_forwarded_for"';

       #access_log  logs/access.log  main;

    #     # loadbalancing PHP
    #     upstream myLoadBalancer {
    #         server 127.0.0.1:9001 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9002 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9003 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9004 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9005 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9006 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9007 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9008 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9009 weight=1 fail_timeout=5;
    #         server 127.0.0.1:9010 weight=1 fail_timeout=5;
    #         least_conn;
    #     }

       sendfile        off;
       #tcp_nopush     on;

       server_names_hash_bucket_size 128;

    ## Start: Timeouts ##
       client_body_timeout   10;
       client_header_timeout 10;
       keepalive_timeout     30;
       send_timeout          10;
       keepalive_requests    10;
    ## End: Timeouts ##

       #gzip  on;

       server {
           #listen       80;
           server_name  localhost;

           #charset koi8-r;

           #access_log  logs/host.access.log  main;

           ## Caching Static Files, put before first location
           #location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
           #    expires 14d;
           #    add_header Vary Accept-Encoding;
           #}

    # For Naxsi remove the single # line for learn mode, or the ## lines for full WAF mode
           location / {
               #include    /nginx/conf/mysite.rules; # see also http block naxsi include line
               ##SecRulesEnabled;
                 ##DeniedUrl "/RequestDenied";
                 ##CheckRule "$SQL >= 8" BLOCK;
                 ##CheckRule "$RFI >= 8" BLOCK;
                 ##CheckRule "$TRAVERSAL >= 4" BLOCK;
                 ##CheckRule "$XSS >= 8" BLOCK;
               root   html;
               index  index.html index.htm;
           }

    # For Naxsi remove the ## lines for full WAF mode, redirect location block used by naxsi
           ##location /RequestDenied {
           ##    return 412;
           ##}

    ## Lua examples !
    #         location /robots.txt {
    #           rewrite_by_lua '
    #             if ngx.var.http_host ~= "localhost" then
    #               return ngx.exec("/robots_disallow.txt");
    #             end
    #           ';
    #         }

           #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;
           }

           # proxy the PHP scripts to Apache listening on 127.0.0.1:80
           #
           #location ~ \.php$ {
           #    proxy_pass   http://127.0.0.1;
           #}

           # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
           #
           #location ~ \.php$ {
           #    root           html;
           #    fastcgi_pass   127.0.0.1:9000; # single backend process
           #    fastcgi_pass   myLoadBalancer; # or multiple, see example above
           #    fastcgi_index  index.php;
           #    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           #    include        fastcgi_params;
           #}

           # deny access to .htaccess files, if Apache's document root
           # concurs with nginx's one
           #
           #location ~ /\.ht {
           #    deny  all;
           #}
       }


       # another virtual host using mix of IP-, name-, and port-based configuration
       #
       #server {
       #    listen       8000;
       #    listen       somename:8080;
       #    server_name  somename  alias  another.alias;

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


       # HTTPS server
       #
       #server {
       #    listen       443 ssl spdy;
       #    server_name  localhost;

       #    ssl                  on;
       #    ssl_certificate      cert.pem;
       #    ssl_certificate_key  cert.key;

       #    ssl_session_timeout  5m;

       #    ssl_prefer_server_ciphers On;
       #    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       #    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!eNULL:!MD5:!DSS:!EXP:!ADH:!LOW:!MEDIUM;

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

    }


    rtmp {
           server {
                   listen 1935;
                   chunk_size 4096;

                   application live {
                           live on;
                           record off;
                           hls on;
                           push http://192.168.0.100:80/live ;
                   }
           }
    }
  • Why does FFMPEG SSIM produce different comparison results depending on which of these uncompressed videos goes first/second ?

    12 novembre 2018, par Ian

    ffmpeg’s ssim instructions say the reference should go second, and when I compare these videos in that order, (where ’copy.avi’ should be lossless H.264 copy of ’original.avi’) SSIM and PSNR return lossless results. But if I reverse the order the performance isn’t lossless.

    Why is this happening ?

    Copy first, original second

    > ffmpeg -hide_banner -i copy.avi -i original.avi -lavfi "ssim;[0:v][1:v]psnr" -f null –


    [avi @ 0x7ffdee002000] decoding for stream 0 failed
    Input #0, avi, from 'copy.avi':
     Metadata:
       encoder         : Lavf58.20.100
     Duration: 00:00:10.67, start: 0.000000, bitrate: 644937 kb/s
       Stream #0:0: Video: h264 (High 4:4:4 Predictive) (H264 / 0x34363248), yuv420p(progressive), 2048x1536, 645930 kb/s, 60 fps, 60 tbr, 60 tbn, 120 tbc
    Input #1, avi, from 'original.avi':
     Metadata:
       encoder         : Lavf54.35.100
     Duration: 00:00:10.67, start: 0.000000, bitrate: 1509965 kb/s
       Stream #1:0: Video: rawvideo (Y800 / 0x30303859), gray, 2048x1536, 1512312 kb/s, 60 fps, 60 tbr, 60 tbn, 60 tbc
    Stream mapping:
     Stream #0:0 (h264) -> ssim:main
     Stream #0:0 (h264) -> psnr:main
     Stream #1:0 (rawvideo) -> ssim:reference
     Stream #1:0 (rawvideo) -> psnr:reference
     ssim -> Stream #0:0 (wrapped_avframe)
     psnr -> Stream #0:1 (wrapped_avframe)
    Press [q] to stop, [?] for help
    Output #0, null, to '–':
     Metadata:
       encoder         : Lavf58.20.100
       Stream #0:0: Video: wrapped_avframe, yuv420p(progressive), 2048x1536, q=2-31, 200 kb/s, 60 fps, 60 tbn, 60 tbc
       Metadata:
         encoder         : Lavc58.35.100 wrapped_avframe
       Stream #0:1: Video: wrapped_avframe, yuv420p, 2048x1536, q=2-31, 200 kb/s, 60 fps, 60 tbn, 60 tbc
       Metadata:
         encoder         : Lavc58.35.100 wrapped_avframe
    frame=  640 fps= 72 q=-0.0 Lq=-0.0 size=N/A time=00:00:10.66 bitrate=N/A speed=1.21x    
    video:670kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    [Parsed_ssim_0 @ 0x7ffdef8024c0] SSIM Y:1.000000 (inf) U:1.000000 (inf) V:1.000000 (inf) All:1.000000 (inf)
    [Parsed_psnr_1 @ 0x7ffdef802940] PSNR y:inf u:inf v:inf average:inf min:inf max:inf

    Original first, copy second

    > ffmpeg -hide_banner -i original.avi -i copy.avi -lavfi "ssim;[0:v][1:v]psnr" -f null –


    Input #0, avi, from 'original.avi':
     Metadata:
       encoder         : Lavf54.35.100
     Duration: 00:00:10.67, start: 0.000000, bitrate: 1509965 kb/s
       Stream #0:0: Video: rawvideo (Y800 / 0x30303859), gray, 2048x1536, 1512312 kb/s, 60 fps, 60 tbr, 60 tbn, 60 tbc
    [avi @ 0x7fb74680d600] decoding for stream 0 failed
    Input #1, avi, from 'copy.avi':
     Metadata:
       encoder         : Lavf58.20.100
     Duration: 00:00:10.67, start: 0.000000, bitrate: 644937 kb/s
       Stream #1:0: Video: h264 (High 4:4:4 Predictive) (H264 / 0x34363248), yuv420p(progressive), 2048x1536, 645930 kb/s, 60 fps, 60 tbr, 60 tbn, 120 tbc
    Stream mapping:
     Stream #0:0 (rawvideo) -> ssim:main
     Stream #0:0 (rawvideo) -> psnr:main
     Stream #1:0 (h264) -> ssim:reference
     Stream #1:0 (h264) -> psnr:reference
     ssim -> Stream #0:0 (wrapped_avframe)
     psnr -> Stream #0:1 (wrapped_avframe)
    Press [q] to stop, [?] for help
    Output #0, null, to '–':
     Metadata:
       encoder         : Lavf58.20.100
       Stream #0:0: Video: wrapped_avframe, gray(progressive), 2048x1536, q=2-31, 200 kb/s, 60 fps, 60 tbn, 60 tbc
       Metadata:
         encoder         : Lavc58.35.100 wrapped_avframe
       Stream #0:1: Video: wrapped_avframe, gray, 2048x1536, q=2-31, 200 kb/s, 60 fps, 60 tbn, 60 tbc
       Metadata:
         encoder         : Lavc58.35.100 wrapped_avframe
    frame=  640 fps= 72 q=-0.0 Lq=-0.0 size=N/A time=00:00:10.66 bitrate=N/A speed=1.19x    
    video:670kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    [Parsed_ssim_0 @ 0x7fb748101780] SSIM Y:0.998296 (27.684975) All:0.998296 (27.684975)
    [Parsed_psnr_1 @ 0x7fb748101c40] PSNR y:56.840774 average:56.840774 min:56.812125 max:56.871584
  • How to solve error : "cvCreateFileCaptureWithPreference : backend FFMPEG doesn't support legacy API anymore"

    24 octobre 2018, par Sarvin

    I am trying to build and run an OpenCV project from Github using OpenCV 3.4.2, Cmake 3.13.0-rc1 and VS 2017. The project builds successfully as I understand from the build output but it throws the above warning after I run the program. The video I want to load is in a .AVI format and uses cvCaptureFromAVI function. Just trying to learn OpenCV, your help and kindness is appreciated.

    Source :

    #include <iostream>
    #include <opencv2></opencv2>opencv.hpp>

    #include "package_bgs/PBAS/PixelBasedAdaptiveSegmenter.h"
    #include "package_tracking/BlobTracking.h"
    #include "package_analysis/VehicleCouting.h"

    using namespace cv;

    int main(int argc, char **argv)
    {
     std::cout &lt;&lt; "Using OpenCV " &lt;&lt; CV_MAJOR_VERSION &lt;&lt; "." &lt;&lt;
     CV_MINOR_VERSION &lt;&lt; "." &lt;&lt; CV_SUBMINOR_VERSION &lt;&lt; std::endl;

     /* Open video file */
     CvCapture *capture = 0;

     capture = cvCaptureFromAVI("video.avi");
     if(!capture){
       std::cerr &lt;&lt; "Cannot open video ting tong!" &lt;&lt; std::endl;
       return 1;
     }

     /* Background Subtraction Algorithm */
     IBGS *bgs;
     bgs = new PixelBasedAdaptiveSegmenter;

     /* Blob Tracking Algorithm */



    cv::Mat img_blob;
     BlobTracking* blobTracking;
     blobTracking = new BlobTracking;

     /* Vehicle Counting Algorithm */
     VehicleCouting* vehicleCouting;
     vehicleCouting = new VehicleCouting;

     std::cout &lt;&lt; "Press 'q' to quit..." &lt;&lt; std::endl;
     int key = 0;
     IplImage *frame;
     while(key != 'q')
     {
       frame = cvQueryFrame(capture);
       if(!frame) break;

       cv::Mat img_input = cv::cvarrToMat(frame);
       cv::imshow("Input", img_input);

       // bgs->process(...) internally process and show the foreground mask image
       cv::Mat img_mask;
       bgs->process(img_input, img_mask);

       if(!img_mask.empty())
       {
         // Perform blob tracking
         blobTracking->process(img_input, img_mask, img_blob);

         // Perform vehicle counting
         vehicleCouting->setInput(img_blob);
         vehicleCouting->setTracks(blobTracking->getTracks());
         vehicleCouting->process();
       }

       key = cvWaitKey(1);
     }

     delete vehicleCouting;
     delete blobTracking;
     delete bgs;

     cvDestroyAllWindows();
     cvReleaseCapture(&amp;capture);

     return 0;
    }
    </iostream>

    Error :

    backend FFMPEG doesn't support legacy API anymore