Recherche avancée

Médias (1)

Mot : - Tags -/lev manovitch

Autres articles (48)

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (4868)

  • FFmpeg - merge videos with different rotation

    1er octobre 2019, par sir.zaquan

    I work with FFmpeg on Android. I have 2+ videos - from front-camera and main-camera. And I want to merge them into one video.

    But videos from front-camera are upside-down. Rotation of video from fr.camera - 270, from main - 90.

    How can I merge them properly ?
    Now I use this :

    val inputCommand = arrayListOf<string>()
       inputCommand.add("-noautorotate")
       inputCommand.add("-i")
       inputCommand.add(videoPath)
       inputCommand.add("-map_metadata")
       inputCommand.add("0")

       if (angle.equals("270", true)) {
           inputCommand.add("-metadata:s:v:0")
           inputCommand.add("rotate=180")
       }

       inputCommand.add("-codec")
       inputCommand.add("copy")
       inputCommand.add("-preset")
       inputCommand.add("ultrafast")
       inputCommand.add("-b:v")
       inputCommand.add("1500k")
       inputCommand.add(outputFile.path)
       inputCommand.add("-y")
    </string>

    But it doesn’t work. -metadata:s:v:0 rotate=180 doesn’t do anything.
    I also tried to use -vf transpose=1,transpose=1 but it doesn’t have effect too.

    What to do ?

    ffmpeg version n4.0-39-gda39990

    Input and Output metadata doesn’t change.

    Metadata:
     rotate          : 270
  • ffmpeg : Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_pad_5

    26 mars 2019, par rsswtmr

    This shouldn’t be that hard. I’m trying to combine three disparate video sources. I’m upscaling them to a consistent 1280x720 frame, with black backgrounds for letterboxing, and trying to concatenate to the output file. The two input files are show segments, and the bumper is a random commercial that goes in the middle.

    On an iMac Pro, System 10.14.3, ffmpeg 4.1.1. The command I’m trying to make work is :

    ffmpeg -y -hide_banner -i "input1.mkv" -i "bumper.mkv" -i "input2.mkv" -filter_complex '[0:v]scale=1280x720:force_original_aspect_ratio=increase[v0],pad=1280x720:max(0\,(ow-iw)/2):max(0\,(oh-ih)/2):black[v0]; [1:v]scale=1280x720:force_original_aspect_ratio=increase[v1],pad=1280x720:max(0\,(ow-iw)/2):max(0\,(oh-ih)/2):black[v1]; [2:v]scale=1280x720:force_original_aspect_ratio=increase[v2],pad=1280x720:max(0\,(ow-iw)/2):max(0\,(oh-ih)/2):black[v2]; [v0][0:a][v1][1:a][v2][2:a]concat=n=3:v=1:a=1 [outv] [outa]' -map "[outv]" -map "[outa]" 'output.mkv'

    The resulting frame I get back is :

    [h264 @ 0x7fbec9000600] [verbose] Reinit context to 720x480, pix_fmt: yuv420p
    [info] Input #0, matroska,webm, from 'input1.mkv':
    [info]   Metadata:
    [info]     encoder         : libebml v0.7.7 + libmatroska v0.8.1
    [info]     creation_time   : 2009-07-20T01:33:54.000000Z
    [info]   Duration: 00:12:00.89, start: 0.000000, bitrate: 1323 kb/s
    [info]     Stream #0:0(eng): Video: h264 (High), 1 reference frame, yuv420p(progressive, left), 708x480 (720x480) [SAR 10:11 DAR 59:44], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    [info]     Stream #0:1(eng): Audio: ac3, 48000 Hz, stereo, fltp, 160 kb/s (default)
    [info]     Metadata:
    [info]       title           : English AC3
    [info]     Stream #0:2(eng): Subtitle: subrip
    [h264 @ 0x7fbec9019a00] [verbose] Reinit context to 304x240, pix_fmt: yuv420p
    [info] Input #1, matroska,webm, from 'bumper.mkv':
    [info]   Metadata:
    [info]     CREATION_TIME   : 2019-03-15T15:16:00Z
    [info]     ENCODER         : Lavf57.7.2
    [info]   Duration: 00:00:18.18, start: 0.000000, bitrate: 274 kb/s
    [info]     Stream #1:0: Video: h264 (Main), 1 reference frame, yuv420p(tv, smpte170m/smpte170m/bt709, progressive, left), 302x232 (304x240) [SAR 1:1 DAR 151:116], 29.97 fps, 29.97 tbr, 1k tbn, 180k tbc (default)
    [info]     Stream #1:1: Audio: aac (LC), 44100 Hz, stereo, fltp, delay 2111 (default)
    [info]     Metadata:
    [info]       title           : Stereo
    [error] Truncating packet of size 3515 to 1529
    [h264 @ 0x7fbec9014600] [verbose] Reinit context to 704x480, pix_fmt: yuv420p
    [h264 @ 0x7fbec9014600] [info] concealing 769 DC, 769 AC, 769 MV errors in I frame
    [matroska,webm @ 0x7fbec9011e00] [error] Read error at pos. 50829 (0xc68d)
    [info] Input #2, matroska,webm, from 'input2.mkv':
    [info]   Metadata:
    [info]     encoder         : libebml v0.7.7 + libmatroska v0.8.1
    [info]     creation_time   : 2009-07-19T22:37:48.000000Z
    [info]   Duration: 00:10:07.20, start: 0.000000, bitrate: 1391 kb/s
    [info]     Stream #2:0(eng): Video: h264 (High), 1 reference frame, yuv420p(progressive, left), 704x480 [SAR 10:11 DAR 4:3], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    [info]     Stream #2:1(eng): Audio: ac3, 48000 Hz, stereo, fltp, 160 kb/s (default)
    [info]     Metadata:
    [info]       title           : English AC3
    [info]     Stream #2:2(eng): Subtitle: subrip
    [Parsed_scale_0 @ 0x7fbec8716540] [verbose] w:1280 h:720 flags:'bilinear' interl:0
    [Parsed_scale_2 @ 0x7fbec8702480] [verbose] w:1280 h:720 flags:'bilinear' interl:0
    [Parsed_scale_4 @ 0x7fbec8702e40] [verbose] w:1280 h:720 flags:'bilinear' interl:0
    [fatal] Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_pad_5
    [AVIOContext @ 0x7fbec862bfc0] [verbose] Statistics: 104366 bytes read, 2 seeks
    [AVIOContext @ 0x7fbec870a100] [verbose] Statistics: 32768 bytes read, 0 seeks
    [AVIOContext @ 0x7fbec87135c0] [verbose] Statistics: 460284 bytes read, 2 seeks

    I have no idea what Parsed_pad_5 means. I Googled Cannot find a matching stream for unlabeled input pad and found absolutely no explanation, anywhere. I’m a relative ffmpeg newbie. Before I start rooting around in the source code, can anyone point me in the right direction ? Thanks in advance.

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