Recherche avancée

Médias (1)

Mot : - Tags -/pirate bay

Autres articles (99)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

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

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

    5 mars 2010, par

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

Sur d’autres sites (11828)

  • FFMPEG : How to chose a stream from all stream

    17 janvier 2020, par Ali

    I try to convert a UDP stream (that genrated from DVB signal) to HLS m3u8 file with this code :

    ffmpeg -i udp://239.1.2.1:60001 -acodec aac -strict -2 -vcodec libx264 -hls_wrap 100 -f hls /var/www/html/ts/1.m3u8

    UDP stream contain 1 channel (in this case IRIB-TV1).

    When I run this above code, ffmpeg detect all of service and channel that streamed from DVB card with this message :

    Input #0, mpegts, from 'udp://239.1.2.1:60001':
    Duration: N/A, start: 77906.812644, bitrate: N/A
    Program 101
    Metadata:
     service_name    : IRIB-TV1
     service_provider: IRIB
    Stream #0:0[0x3f2]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x3f3](per): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
    Program 102
    Metadata:
     service_name    : IRIB-TV2
     service_provider: IRIB
    Program 103
    Metadata:
     service_name    : IRIB-TV3
     service_provider: IRIB
    Program 104
    Metadata:
     service_name    : IRIB-TV4
     service_provider: IRIB

    As you see ffmpeg finf 4 channel in UDP stream, But VLC play only channel 1(IRIB-TV1).

    Now I have have 2 question :

    1-Can I get all channel and service via this ffmpeg code ?

    2-Can I choose a special stream from this ffmpeg code ?(I know that ffmpeg can choose a stream with -map option but I want to choose other service_name that in output log)

    output file is :

    ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
     built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
     configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
     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
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  0.100 /  3.  0.100
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  0.100 / 53.  0.100
    Splitting the commandline.
    Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
    Reading option '-timeout' ... matched as AVOption 'timeout' with argument '6000000'.
    Reading option '-i' ... matched as input file with argument 'udp://239.1.2.1:60001?fifo_size=50000'.
    Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'copy'.
    Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
    Reading option '-preset' ... matched as AVOption 'preset' with argument 'ultrafast'.
    Reading option '-flags' ... matched as AVOption 'flags' with argument '-global_header'.
    Reading option '-f' ... matched as option 'f' (force format) with argument 'hls'.
    Reading option '-hls_time' ... matched as AVOption 'hls_time' with argument '20'.
    Reading option '-hls_wrap' ... matched as AVOption 'hls_wrap' with argument '5'.
    Reading option '/var/www/html/ts/1.m3u8' ... matched as output file.
    Finished splitting the commandline.
    Parsing a group of options: global .
    Applying option loglevel (set logging level) with argument debug.
    Successfully parsed a group of options.
    Parsing a group of options: input file udp://239.1.2.1:60001?fifo_size=50000.
    Successfully parsed a group of options.
    Opening an input file: udp://239.1.2.1:60001?fifo_size=50000.
    [udp @ 0x1967040] end receive buffer size reported is 131072
    [mpegts @ 0x1977380] Format mpegts probed with size=2048 and score=100
    [mpegts @ 0x1977380] stream=0 stream_type=1b pid=3f2 prog_reg_desc=
    [mpegts @ 0x1977380] stream=1 stream_type=11 pid=3f3 prog_reg_desc=
    [mpegts @ 0x1977380] Before avformat_find_stream_info() pos: 0 bytes read:14476 seeks:0
    [mpegts @ 0x1977380] parser not found for codec none, packets or times may be invalid.
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [mpegts @ 0x1977380] probing stream 1 pp:2500
    [mpegts @ 0x1977380] Probe with size=853, packets=1 detected loas with score=51
    [mpegts @ 0x1977380] probed stream 1
    [aac_latm @ 0x199e4e0] initializing latmctx
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] non-existing PPS 0 referenced
       Last message repeated 1 times
    [h264 @ 0x199cc60] decode_slice_header error
    [h264 @ 0x199cc60] no frame!
    [h264 @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [h264 @ 0x199cc60] Frame num gap 397 393
    [h264 @ 0x199cc60] Frame num gap 397 394
    [h264 @ 0x199cc60] Frame num gap 397 395
    [h264 @ 0x199cc60] mmco: unref short failure
       Last message repeated 1 times
    [h264 @ 0x199cc60] number of reference frames (0+4) exceeds max (3; probably corrupt input), discarding one
    [h264 @ 0x199cc60] no picture ooo
    [h264 @ 0x199cc60] Increasing reorder buffer to 2
    [h264 @ 0x199cc60] no picture ooo
       Last message repeated 1 times
    [h264 @ 0x199cc60] no picture
       Last message repeated 1 times
    [h264 @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
       Last message repeated 3 times
    [mpegts @ 0x1977380] max_analyze_duration 5000000 reached at 5034667 microseconds
    [mpegts @ 0x1977380] After avformat_find_stream_info() pos: 1142476 bytes read:1143604 seeks:0 frames:397
    Input #0, mpegts, from 'udp://239.1.2.1:60001?fifo_size=50000':
     Duration: N/A, start: 43581.024200, bitrate: N/A
     Program 101
       Metadata:
         service_name    : IRIB-TV1
         service_provider: IRIB
       Stream #0:0[0x3f2], 274, 1/90000: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg), 720x576 [SAR 12:11 DAR 15:11], 1/50, 25 fps, 50 tbr, 90k tbn, 50 tbc
       Stream #0:1[0x3f3](per), 123, 1/90000: Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
     Program 102
       Metadata:
         service_name    : IRIB-TV2
         service_provider: IRIB
     Program 103
       Metadata:
         service_name    : IRIB-TV3
         service_provider: IRIB
     Program 104
       Metadata:
         service_name    : IRIB-TV4
         service_provider: IRIB
     Program 105
       Metadata:
         service_name    : IRIB-TV5
         service_provider: IRIB
     Program 106
       Metadata:
         service_name    : IRINN
         service_provider: IRIB
     Program 107
       Metadata:
         service_name    : AMOOZESH
         service_provider: IRIB
     Program 108
       Metadata:
         service_name    : QURAN
         service_provider: IRIB
     Program 119
       Metadata:
         service_name    : SALAMAT
         service_provider: IRIB
     Program 120
       Metadata:
         service_name    : NASIM
         service_provider: IRIB
     Program 151
       Metadata:
         service_name    : RADIO IRAN
         service_provider: IRIB
     Program 152
       Metadata:
         service_name    : RADIO PAYAM
         service_provider: IRIB
     Program 153
       Metadata:
         service_name    : RADIO JAVAN
         service_provider: IRIB
     Program 154
       Metadata:
         service_name    : RADIO MAAREF
         service_provider: IRIB
     Program 155
       Metadata:
         service_name    : RADIO QURAN
         service_provider: IRIB
     Program 156
       Metadata:
         service_name    : RADIO FARHANG
         service_provider: IRIB
     Program 157
       Metadata:
         service_name    : RADIO SALAMAT
         service_provider: IRIB
     Program 158
       Metadata:
         service_name    : RADIO VARZESH
         service_provider: IRIB
     Program 159
       Metadata:
         service_name    : RADIO EGHTESAD
         service_provider: IRIB
     Program 160
       Metadata:
         service_name    : RADIO TEHRAN
         service_provider: IRIB
     Program 161
       Metadata:
         service_name    : RADIO AVAA
         service_provider: IRIB
     Program 162
       Metadata:
         service_name    : RADIO NAMAYESH
         service_provider: IRIB
     Program 163
       Metadata:
         service_name    : RADIO SABA
         service_provider: IRIB
     Program 164
       Metadata:
         service_name    : English Radio World Service
         service_provider: IRIB
     Program 166
       Metadata:
         service_name    : Arabic Radio World Service
         service_provider: IRIB
     Program 167
       Metadata:
         service_name    : RADIO BAHARAN
         service_provider: IRIB
     Program 169
       Metadata:
         service_name    : RADIO TELAVAT
         service_provider: IRIB
     Program 170
       Metadata:
         service_name    : RADIO GOFTEGO
         service_provider: IRIB
    Successfully opened the file.
    Parsing a group of options: output file /var/www/html/ts/1.m3u8.
    Applying option acodec (force audio codec ('copy' to copy stream)) with argument copy.
    Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
    Applying option f (force format) with argument hls.
    Successfully parsed a group of options.
    Opening an output file: /var/www/html/ts/1.m3u8.
    Successfully opened the file.
    [mpegts @ 0x1967180] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
       Last message repeated 1 times
    [mpegts @ 0x1967180] muxrate VBR, pcr every 2 pkts, sdt every 200, pat/pmt every 40 pkts
    Output #0, hls, to '/var/www/html/ts/1.m3u8':
     Metadata:
       encoder         : Lavf56.4.101
       Stream #0:0, 0, 1/90000: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 12:11 DAR 15:11], 1/25, q=2-31, 25 fps, 90k tbn, 25 tbc
       Stream #0:1(per), 0, 1/90000: Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [NULL @ 0x199cc60] Current profile doesn't provide more RBSP data in PPS, skipping
    [AVIOContext @ 0x19a9860] Statistics: 0 seeks, 896 writeouts=N/A    
    [hls @ 0x1a65ca0] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x1d162e0] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x1966b40] Statistics: 0 seeks, 27 writeouts
    [hls @ 0x1a65ca0] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x199b7a0] Statistics: 0 seeks, 1 writeouts
    frame=  826 fps= 69 q=-1.0 Lsize=N/A time=00:00:20.63 bitrate=N/A    
    video:2611kB audio:68kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    Input file #0 (udp://239.1.2.1:60001?fifo_size=50000):
     Input stream #0:0 (video): 872 packets read (2779202 bytes);
     Input stream #0:1 (audio): 405 packets read (69222 bytes);
     Total: 1277 packets (2848424 bytes) demuxed
    Output file #0 (/var/www/html/ts/1.m3u8):
     Output stream #0:0 (video): 826 packets muxed (2673485 bytes);
     Output stream #0:1 (audio): 405 packets muxed (69222 bytes);
     Total: 1231 packets (2742707 bytes) muxed
    0 frames successfully decoded, 0 decoding errors
    [AVIOContext @ 0x1967ce0] Statistics: 3884832 bytes read, 0 seeks
    Received signal 2: terminating.
  • Live streaming : node-media-server + Dash.js configured for real-time low latency

    7 juillet 2021, par Maoration

    We're working on an app that enables live monitoring of your back yard.
Each client has a camera connected to the internet, streaming to our public node.js server.

    



    I'm trying to use node-media-server to publish an MPEG-DASH (or HLS) stream to be available for our app clients, on different networks, bandwidths and resolutions around the world.

    



    Our goal is to get as close as possible to live "real-time" so you can monitor what happens in your backyard instantly.

    



    The technical flow already accomplished is :

    



      

    1. ffmpeg process on our server processes the incoming camera stream (separate child process for each camera) and publishes the stream via RTSP on the local machine for node-media-server to use as an 'input' (we are also saving segmented files, generating thumbnails, etc.). the ffmpeg command responsible for that is :

      



      -c:v libx264 -preset ultrafast -tune zerolatency -b:v 900k -f flv rtmp://127.0.0.1:1935/live/office

    2. 


    3. node-media-server is running with what I found as the default configuration for 'live-streaming'

      



      private NMS_CONFIG = {
server: {
  secret: 'thisisnotmyrealsecret',
},
rtmp_server: {
  rtmp: {
    port: 1935,
    chunk_size: 60000,
    gop_cache: false,
    ping: 60,
    ping_timeout: 30,
  },
  http: {
    port: 8888,
    mediaroot: './server/media',
    allow_origin: '*',
  },
  trans: {
    ffmpeg: '/usr/bin/ffmpeg',
    tasks: [
      {
        app: 'live',
        hls: true,
        hlsFlags: '[hls_time=2:hls_list_size=3:hls_flags=delete_segments]',
        dash: true,
        dashFlags: '[f=dash:window_size=3:extra_window_size=5]',
      },
    ],
  },
},


      



      } ;

    4. 


    5. As I understand it, out of the box NMS (node-media-server) publishes the input stream it gets in multiple output formats : flv, mpeg-dash, hls.
with all sorts of online players for these formats I'm able to access and the stream using the url on localhost. with mpeg-dash and hls I'm getting anything between 10-15 seconds of delay, and more.

    6. 


    




    



    My goal now is to implement a local client-side mpeg-dash player, using dash.js and configure it to be as close as possible to live.

    



    my code for that is :

    



    

    

    &#xD;&#xA;&#xD;&#xA;    &#xD;&#xA;        &#xD;&#xA;        &#xD;&#xA;    &#xD;&#xA;    &#xD;&#xA;        <div>&#xD;&#xA;            <video autoplay="" controls=""></video>&#xD;&#xA;        </div>&#xD;&#xA;        <code class="echappe-js">&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/dashjs/3.0.2/dash.all.min.js&quot;&gt;&lt;/script&gt;&#xD;&#xA;&#xD;&#xA;        &lt;script&gt;&amp;#xD;&amp;#xA;            (function(){&amp;#xD;&amp;#xA;                // var url = &quot;https://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd&quot;;&amp;#xD;&amp;#xA;                var url = &quot;http://localhost:8888/live/office/index.mpd&quot;;&amp;#xD;&amp;#xA;                var player = dashjs.MediaPlayer().create();&amp;#xD;&amp;#xA;                &amp;#xD;&amp;#xA;                &amp;#xD;&amp;#xA;&amp;#xD;&amp;#xA;                // config&amp;#xD;&amp;#xA;                targetLatency = 2.0;        // Lowering this value will lower latency but may decrease the player&amp;#x27;s ability to build a stable buffer.&amp;#xD;&amp;#xA;                minDrift = 0.05;            // Minimum latency deviation allowed before activating catch-up mechanism.&amp;#xD;&amp;#xA;                catchupPlaybackRate = 0.5;  // Maximum catch-up rate, as a percentage, for low latency live streams.&amp;#xD;&amp;#xA;                stableBuffer = 2;           // The time that the internal buffer target will be set to post startup/seeks (NOT top quality).&amp;#xD;&amp;#xA;                bufferAtTopQuality = 2;     // The time that the internal buffer target will be set to once playing the top quality.&amp;#xD;&amp;#xA;&amp;#xD;&amp;#xA;&amp;#xD;&amp;#xA;                player.updateSettings({&amp;#xD;&amp;#xA;                    &amp;#x27;streaming&amp;#x27;: {&amp;#xD;&amp;#xA;                        &amp;#x27;liveDelay&amp;#x27;: 2,&amp;#xD;&amp;#xA;                        &amp;#x27;liveCatchUpMinDrift&amp;#x27;: 0.05,&amp;#xD;&amp;#xA;                        &amp;#x27;liveCatchUpPlaybackRate&amp;#x27;: 0.5,&amp;#xD;&amp;#xA;                        &amp;#x27;stableBufferTime&amp;#x27;: 2,&amp;#xD;&amp;#xA;                        &amp;#x27;bufferTimeAtTopQuality&amp;#x27;: 2,&amp;#xD;&amp;#xA;                        &amp;#x27;bufferTimeAtTopQualityLongForm&amp;#x27;: 2,&amp;#xD;&amp;#xA;                        &amp;#x27;bufferToKeep&amp;#x27;: 2,&amp;#xD;&amp;#xA;                        &amp;#x27;bufferAheadToKeep&amp;#x27;: 2,&amp;#xD;&amp;#xA;                        &amp;#x27;lowLatencyEnabled&amp;#x27;: true,&amp;#xD;&amp;#xA;                        &amp;#x27;fastSwitchEnabled&amp;#x27;: true,&amp;#xD;&amp;#xA;                        &amp;#x27;abr&amp;#x27;: {&amp;#xD;&amp;#xA;                            &amp;#x27;limitBitrateByPortal&amp;#x27;: true&amp;#xD;&amp;#xA;                        },&amp;#xD;&amp;#xA;                    }&amp;#xD;&amp;#xA;                });&amp;#xD;&amp;#xA;&amp;#xD;&amp;#xA;                console.log(player.getSettings());&amp;#xD;&amp;#xA;&amp;#xD;&amp;#xA;                setInterval(() =&gt; {&amp;#xD;&amp;#xA;                  console.log(&amp;#x27;Live latency= &amp;#x27;, player.getCurrentLiveLatency());&amp;#xD;&amp;#xA;                  console.log(&amp;#x27;Buffer length= &amp;#x27;, player.getBufferLength(&amp;#x27;video&amp;#x27;));&amp;#xD;&amp;#xA;                }, 3000);&amp;#xD;&amp;#xA;&amp;#xD;&amp;#xA;                player.initialize(document.querySelector(&quot;#videoPlayer&quot;), url, true);&amp;#xD;&amp;#xA;&amp;#xD;&amp;#xA;            })();&amp;#xD;&amp;#xA;&amp;#xD;&amp;#xA;        &lt;/script&gt;&#xD;&#xA;    &#xD;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;&#xA;&#xA;

    with the online test video (https://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd) I see that the live latency value is close to 2 secs (but I have no way to actually confirm it. it's a video file streamed. in my office I have a camera so I can actually compare latency between real-life and the stream I get).&#xA;however when working locally with my NMS, it seems this value does not want to go below 20-25 seconds.

    &#xA;&#xA;

    Am I doing something wrong ? any configuration on the player (client-side html) I'm forgetting ?&#xA;or is there a missing configuration I should add on the server side (NMS) ?

    &#xA;

  • Introducing WebM, an open web media project

    20 mai 2010, par noreply@blogger.com (christosap)

    A key factor in the web’s success is that its core technologies such as HTML, HTTP, TCP/IP, etc. are open and freely implementable. Though video is also now core to the web experience, there is unfortunately no open and free video format that is on par with the leading commercial choices. To that end, we are excited to introduce WebM, a broadly-backed community effort to develop a world-class media format for the open web.

    WebM includes :

    • VP8, a high-quality video codec we are releasing today under a BSD-style, royalty-free license
    • Vorbis, an already open source and broadly implemented audio codec
    • a container format based on a subset of the Matroska media container

    The team that created VP8 have been pioneers in video codec development for over a decade. VP8 delivers high quality video while efficiently adapting to the varying processing and bandwidth conditions found on today’s broad range of web-connected devices. VP8’s efficient bandwidth usage will mean lower serving costs for content publishers and high quality video for end-users. The codec’s relative simplicity makes it easy to integrate into existing environments and requires less manual tuning to produce high quality results. These existing attributes and the rapid innovation we expect through the open-development process make VP8 well suited for the unique requirements of video on the web.

    A developer preview of WebM and VP8, including source code, specs, and encoding tools is available today at www.webmproject.org.

    We want to thank the many industry leaders and web community members who are collaborating on the development of WebM and integrating it into their products. Check out what Mozilla, Opera, Google Chrome, Adobe, and many others below have to say about the importance of WebM to the future of web video.


    Telestream