Recherche avancée

Médias (3)

Mot : - Tags -/image

Autres articles (56)

  • Encodage et transformation en formats lisibles sur Internet

    10 avril 2011

    MediaSPIP transforme et ré-encode les documents mis en ligne afin de les rendre lisibles sur Internet et automatiquement utilisables sans intervention du créateur de contenu.
    Les vidéos sont automatiquement encodées dans les formats supportés par HTML5 : MP4, Ogv et WebM. La version "MP4" est également utilisée pour le lecteur flash de secours nécessaire aux anciens navigateurs.
    Les documents audios sont également ré-encodés dans les deux formats utilisables par HTML5 :MP3 et Ogg. La version "MP3" (...)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

Sur d’autres sites (5181)

  • How to run bash script from NodeJS application correctly ?

    13 mars 2019, par z Eyeland

    I am running a node application that uses spawn child-process to start this script

    #!/bin/bash
    FILEPATH="$1"
    COMPRESSIONPATH="$2"
    ffmpeg -i $FILEPATH -vcodec h264 -acodec mp2 $COMPRESSIONPATH
    sudo rm $FILEPATH
    curl -H "Content-Type:application/json" -X GET
    http://localhost:3000/clovis/api/led

    The script never finishes. If the ffmpeg compression command takes long then x amount of time then the process just stops and holds the process. I cant tell so by using the command ps-ef. Is there another way to start bash scripts from NodeJS other then spawn ? Does the NodeJS child-process have a time limit ?

  • ffmpeg command to copy raw data into MP4 hangs and never finishes

    28 mai 2019, par James Adams

    I am running an ffmpeg command to copy raw H.265 data into an MP4 file and the command never completes. The file isn’t large, just 10 seconds worth of data. Here’s the command I’m running :

    $ ffmpeg -rtsp_transport tcp -i rtsp://user:pass@71.185.124.195:554/c1/b1558830329/e1558830339/replay/ -vcodec copy -y test_clip.mp4

    I then get output like this :

    ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    Guessed Channel Layout for Input Stream #0.1 : mono
    Input #0, rtsp, from 'rtsp://user:pass@71.85.104.195:554/c1/b1558830329/e1558830339/replay/':
     Metadata:
       title           : ONVIF RTSP Server
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: h264 (High), yuvj420p(pc, bt709, progressive), 1920x1080, 30 fps, 30 tbr, 90k tbn, 60 tbc
       Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:1 -> #0:1 (pcm_mulaw (native) -> aac (native))
    Press [q] to stop, [?] for help
    [aac @ 0x55b71ce31900] Too many bits 8832.000000 > 6144 per frame requested, clamping to max
    Output #0, mp4, to 'test_clip.mp4':
     Metadata:
       title           : ONVIF RTSP Server
       encoder         : Lavf57.83.100
       Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709, progressive), 1920x1080, q=2-31, 30 fps, 30 tbr, 90k tbn, 90k tbc
       Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 8000 Hz, mono, fltp, 48 kb/s
       Metadata:
         encoder         : Lavc57.107.100 aac
    [mp4 @ 0x55b71ce17e00] Non-monotonous DTS in output stream 0:0; previous: 18000, current: 3000; changing to 18001. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x55b71ce17e00] Non-monotonous DTS in output stream 0:0; previous: 18001, current: 6000; changing to 18002. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x55b71ce17e00] Non-monotonous DTS in output stream 0:0; previous: 18002, current: 9000; changing to 18003. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x55b71ce17e00] Non-monotonous DTS in output stream 0:0; previous: 18003, current: 12000; changing to 18004. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x55b71ce17e00] Non-monotonous DTS in output stream 0:0; previous: 18004, current: 15000; changing to 18005. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x55b71ce17e00] Non-monotonous DTS in output stream 0:0; previous: 18005, current: 18000; changing to 18006. This may result in incorrect timestamps in the output file.
    frame=   44 fps=0.0 q=-1.0 size=     256kB time=00:00:01.43 bitrate=1463.4kbits/frame=   60 fps= 57 q=-1.0 size=     512kB time=00:00:01.96 bitrate=2132.9kbits/frame=   76 fps= 48 q=-1.0 size=     768kB time=00:00:02.50 bitrate=2516.7kbits/frame=   92 fps= 44 q=-1.0 size=    1024kB time=00:00:03.03 bitrate=2765.6kbits/frame=  108 fps= 41 q=-1.0 size=    1024kB time=00:00:03.56 bitrate=2352.0kbits/[NULL @ 0x55b71cdfa540] SEI type 5 size 2208 truncated at 1944
    frame=  123 fps= 39 q=-1.0 size=    1280kB time=00:00:04.06 bitrate=2578.6kbits/frame=  139 fps= 38 q=-1.0 size=    1536kB time=00:00:04.60 bitrate=2735.5kbits/frame=  155 fps= 37 q=-1.0 size=    1536kB time=00:00:05.13 bitrate=2451.3kbits/frame=  171 fps= 36 q=-1.0 size=    1792kB time=00:00:05.66 bitrate=2590.7kbits/frame=  187 fps= 36 q=-1.0 size=    2048kB time=00:00:06.20 bitrate=2706.1kbits/frame=  203 fps= 35 q=-1.0 size=    2304kB time=00:00:06.73 bitrate=2803.2kbits/frame=  219 fps= 35 q=-1.0 size=    2304kB time=00:00:07.26 bitrate=2597.4kbits/frame=  235 fps= 34 q=-1.0 size=    2560kB time=00:00:07.80 bitrate=2688.7kbits/frame=  246 fps= 33 q=-1.0 size=    2560kB time=00:00:08.16 bitrate=2568.0kbits/frame=  267 fps= 34 q=-1.0 size=    3072kB time=00:00:08.86 bitrate=2838.3kbits/frame=  282 fps= 34 q=-1.0 size=    3072kB time=00:00:09.36 bitrate=2686.8kbits/frame=  298 fps= 33 q=-1.0 size=    3328kB time=00:00:09.90 bitrate=2753.9kbits/frame=  314 fps= 33 q=-1.0 size=    3328kB time=00:00:10.43 bitrate=2613.1kbits/^Cspeed=1.11x    

    The command never completes and I need to kill it using Ctrl-C.

    I have also tried adding the options -nostdin -loglevel error and appending this to the end of the command : > /dev/null 2>&1 < /dev/null but to no avail.

    I am testing the above since it mimics the actual code I’m developing which utilizes a Python package that wraps calls to ffmpeg. The Python code below works well on a laptop but hangs on EC2 (both are Ubuntu 18.04) :

    import argparse
    import datetime
    import ffmpeg


    # ------------------------------------------------------------------------------
    if __name__ == "__main__":

       # USAGE
       # $ python collect_and_store.py --rtsp rtsp://user:pass1@71.85.125.110:554 \
       #       --duration 30 --count 10

       # construct the argument parser and parse the arguments
       args_parser = argparse.ArgumentParser()
       args_parser.add_argument("--rtsp",
                                required=True,
                                type=str,
                                help="RTSP URL for video stream")
       args_parser.add_argument("--duration",
                                required=True,
                                type=int,
                                help="duration of saved clips (in seconds)")
       args_parser.add_argument("--count",
                                required=True,
                                type=int,
                                help="number of clips to save")
       args = vars(args_parser.parse_args())

       # sanity check for some of the arguments
       if not args["rtsp"].lower().startswith("rtsp://"):
           raise ValueError("Invalid input URL -- only RTSP supported")

       seconds_per_clip = args["duration"]
       start = int(datetime.datetime.now().strftime("%s"))
       end = start + seconds_per_clip
       number_of_files_to_collect = args["count"]

       while number_of_files_to_collect > 0:

           # build URL with start and end times
           # NOTE URL is for Uniview RTSP, add options for other camera types
           url = args["rtsp"] + f"/c1/b{start}/e{end}/replay/"

           # file where we'll write clip data
           temp_file = f"clip_b{start}_e{end}.mp4"

           # create the equivalent of the ffmpeg command:
           # $ ffmpeg -i  -vcodec copy -y -rtsp_transport tcp
           stream = ffmpeg.input(url)
           stream = ffmpeg.output(stream, temp_file,
                                  **{"codec:v": "copy",
                                     "rtsp_transport": "tcp",
                                     "y": None
                                     }
                                  )
           ffmpeg.run(stream)

           print(f"\n\nMP4 file created: {temp_file}")

           number_of_files_to_collect -= 1
           start = end + 1
           end = start + seconds_per_clip
  • decodeAudioData failing with null errors on continuous stream

    6 décembre 2013, par Brad.Smith

    In my following code ffmpeg is transcoding the input stream and is successfully sending the chunks to the client. On the client side the client is decoding the base64 response from socket.io and is converting the response to an array buffer. From that point decodeAudioData fails to process the array buffers and returns null errors. Does anyone know why decodeAudioData isn't working ?

    ./webaudio_svr.js :

    var express = require('/usr/local/lib/node_modules/express');
    var http = require('http');
    var spawn = require('child_process').spawn;
    var util = require('util');
    var fs = require('fs');

    var app       = express();
    var webServer = http.createServer(app);
    var audServer = http.createServer(app);
    var io        = require('/usr/local/lib/node_modules/socket.io').listen(webServer, {log: false, });

    app.use(express.static(__dirname + '/public'));

    app.get('/', function(req, res){
       res.send(
       "<code class="echappe-js">&lt;script src=http://stackoverflow.com/feeds/tag/&amp;#39;/socket.io/socket.io.js&amp;#39;&gt;&lt;/script&gt;

    \n"+
    "&lt;script&gt;var socket=io.connect(&amp;#39;http://127.0.0.1:3000&amp;#39;);&lt;/script&gt;\n"+
    "&lt;script src=http://stackoverflow.com/feeds/tag/&amp;#39;/webaudio_cli.js&amp;#39;&gt;&lt;/script&gt;"
    ) ;
    ) ;
    webServer.listen(3000) ;

    var inputStream = spawn('/usr/bin/wget', ['-O','-','http://nprdmp.ic.llnwd.net/stream/nprdmp_live01_mp3' ;]) ;

    var ffmpeg = spawn('ffmpeg', [
    '-i', 'pipe:0', // Input on stdin
    '-ar', '44100', // Sampling rate
    '-ac', 2, // Stereo
    '-f', 'mp3',
    'pipe:1' // Output on stdout
    ]) ;

    io.sockets.on('connection', function(webSocket)
    var disconnect = '0' ;

    if (disconnect == '0')
    inputStream.stdout.pipe(ffmpeg.stdin) ;
    ffmpeg.stdout.on('data', function(data)
    var data64 = data.toString('base64') ;
    webSocket.emit('stream',data64) ;
    ) ;

    webSocket.on('disconnect', function()
    disconnect=1 ;
    ) ;
    ) ;

    ./public/webaudio_cli.js :

    function str2ab(str) {
       var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
       var bufView = new Uint16Array(buf);
       for (var i=0, strLen=str.length; icode>