Recherche avancée

Médias (91)

Autres articles (20)

  • Other interesting software

    13 avril 2011, par

    We don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
    The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
    We don’t know them, we didn’t try them, but you can take a peek.
    Videopress
    Website : http://videopress.com/
    License : GNU/GPL v2
    Source code : (...)

  • Selection of projects using MediaSPIP

    2 mai 2011, par

    The examples below are representative elements of MediaSPIP specific uses for specific projects.
    MediaSPIP farm @ Infini
    The non profit organizationInfini develops hospitality activities, internet access point, training, realizing innovative projects in the field of information and communication technologies and Communication, and hosting of websites. It plays a unique and prominent role in the Brest (France) area, at the national level, among the half-dozen such association. Its members (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    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 (...)

Sur d’autres sites (4749)

  • HLS Streaming using node JS

    20 février 2014, par Tirtha

    I'm trying to stream HLS content using node.js. And somehow it is not working. It'll be of great help if someone helps me out.

    Problem :-
    Trying to serve HLS content from node.js (not live stream, but a set of .ts files and .m3u8 playlist, or in other words VOD content)

    Folder Structure

    stream_test
    |--- app.js
    |--- node_modules
    |--- streamcontent
           |--- test.m3u8
           |--- segment0.ts
           |--- segment1.ts
           .
           .
           .
           |--- segment127.ts

    My app.js looks like this

    var http = require('http'),
       url = require('url'),
       path = require('path'),
       fs = require('fs');
    var mimeTypes = {
       "html": "text/html",
       "jpeg": "image/jpeg",
       "jpg": "image/jpeg",
       "png": "image/png",
       "js": "text/javascript",
       "css": "text/css",
       "ts": "video/MP2T",
       "m3u8": "application/vnd.apple.mpegurl"};

    http.createServer(function(req, res) {
       var uri = url.parse(req.url).pathname;
       var filename = path.join(process.cwd(), unescape(uri));
       var stats;

       console.log('filename '+filename);

       try {
           stats = fs.lstatSync(filename); // throws if path doesn't exist
       } catch (e) {
           res.writeHead(404, {'Content-Type': 'text/plain'});
           res.write('404 Not Found\n');
           res.end();
           return;
       }


       if (stats.isFile()) {
           // path exists, is a file
           var mimeType = mimeTypes[path.extname(filename).split(".")[1]];
           res.writeHead(200, {'Content-Type': mimeType} );

           var fileStream = fs.createReadStream(filename);
           fileStream.pipe(res);
       } else if (stats.isDirectory()) {
           // path exists, is a directory
           res.writeHead(200, {'Content-Type': 'text/plain'});
           res.write('Index of '+uri+'\n');
           res.write('TODO, show index?\n');
           res.end();
       } else {
           // Symbolic link, other?
           // TODO: follow symlinks?  security?
           res.writeHead(500, {'Content-Type': 'text/plain'});
           res.write('500 Internal server error\n');
           res.end();
       }

    }).listen(8000);

    The test.m3u8 looks like this

    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA-SEQUENCE:0
    #EXT-X-ALLOW-CACHE:YES
    #EXT-X-TARGETDURATION:19
    #EXT-X-PLAYLIST-TYPE:VOD
    #EXTINF:12.595922,
    segment0.ts
    .
    .
    .

    I used ffmpeg to create the segments and palylist

    ffmpeg -i video-a.mp4  -c:a libmp3lame -ar 48000 -ab 64k  -c:v libx264   -b:v 128k -flags -global_header -map 0 -f segment  -segment_list test.m3u8 -segment_time 30 -segment_format mpegts segment_%05d.ts

    Test Scenraio :-
    Works fine if served from Apache, does not if served from node.

    Test Tool :-
    VNC Player

  • HLS Streaming using node JS

    24 avril 2020, par Tirtha

    I'm trying to stream HLS content using node.js. And somehow it is not working. It'll be of great help if someone helps me out.

    



    Problem :-
Trying to serve HLS content from node.js (not live stream, but a set of .ts files and .m3u8 playlist, or in other words VOD content)

    



    Folder Structure

    



    stream_test
|--- app.js
|--- node_modules
|--- streamcontent
        |--- test.m3u8
        |--- segment0.ts
        |--- segment1.ts
        .
        .
        .
        |--- segment127.ts


    



    My app.js looks like this

    



    var http = require('http'),
    url = require('url'),
    path = require('path'),
    fs = require('fs');
var mimeTypes = {
    "html": "text/html",
    "jpeg": "image/jpeg",
    "jpg": "image/jpeg",
    "png": "image/png",
    "js": "text/javascript",
    "css": "text/css",
    "ts": "video/MP2T",
    "m3u8": "application/vnd.apple.mpegurl"};

http.createServer(function(req, res) {
    var uri = url.parse(req.url).pathname;
    var filename = path.join(process.cwd(), unescape(uri));
    var stats;

    console.log('filename '+filename);

    try {
        stats = fs.lstatSync(filename); // throws if path doesn't exist
    } catch (e) {
        res.writeHead(404, {'Content-Type': 'text/plain'});
        res.write('404 Not Found\n');
        res.end();
        return;
    }


    if (stats.isFile()) {
        // path exists, is a file
        var mimeType = mimeTypes[path.extname(filename).split(".")[1]];
        res.writeHead(200, {'Content-Type': mimeType} );

        var fileStream = fs.createReadStream(filename);
        fileStream.pipe(res);
    } else if (stats.isDirectory()) {
        // path exists, is a directory
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.write('Index of '+uri+'\n');
        res.write('TODO, show index?\n');
        res.end();
    } else {
        // Symbolic link, other?
        // TODO: follow symlinks?  security?
        res.writeHead(500, {'Content-Type': 'text/plain'});
        res.write('500 Internal server error\n');
        res.end();
    }

}).listen(8000);


    



    The test.m3u8 looks like this

    



    #EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:19
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:12.595922,
segment0.ts
.
.
.


    



    I used ffmpeg to create the segments and palylist

    



    ffmpeg -i video-a.mp4  -c:a libmp3lame -ar 48000 -ab 64k  -c:v libx264   -b:v 128k -flags -global_header -map 0 -f segment  -segment_list test.m3u8 -segment_time 30 -segment_format mpegts segment_%05d.ts


    



    Test Scenraio :-
Works fine if served from Apache, does not if served from node.

    



    Test Tool :-
VNC Player

    


  • FFmpeg file not found exception

    26 mai 2018, par Sagar Hudge

    I am getting following exception on video trimming.

    video path : /storage/emulated/0/Pictures/Instagram/Fast & Furious 7 - Get Low Extended Version Video.mp4

    file name : Fast & Furious 7 - Get Low Extended Version Video.mp4

    and ffmpeg searching for only Fast in

    /storage/emulated/0/Pictures/Instagram/Fast: No such file or directory

    I have found the issue ,it is causing due to the file name having spaces in between them you can check in above mentioned path and in exception.

    after changing file name its working but changing name of every file from device its not the right way so how can I solve this exception

    FAILED with output : WARNING: linker: /data/user/0/com.example.SeekBarActivity/files/ffmpeg
    has text relocations. This is wasting memory and prevents security hardening.
    Please fix. ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers

    built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
    configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-
    android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --
    cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-
    Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264
    --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig
    --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --
    enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --
    enable-yasm --disable-doc --disable-shared --enable-static --pkg-
    config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --
    prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-
    cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -
    U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-
    all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-
    android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-
    lpng -lexpat -lm' --extra-cxxflags=
     libavutil      54.  7.100 / 54.  7.100
     libavcodec     56.  1.100 / 56.  1.100
     libavformat    56.  4.101 / 56.  4.101
     libavdevice    56.  0.100 / 56.  0.100
     libavfilter     5.  1.100 /  5.  1.100
     libswscale      3.  0.100 /  3.  0.100
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  0.100 / 53.  0.100
     /storage/emulated/0/Pictures/Instagram/Fast: No such file or directory