On-line (Internet) Audio/Video

Index

General





IPTV Video over Internet
media video resolution
480i, 576i, 720p, 1080i, 1080p (any)
codec
  • MPEG-2
  • MPEG4-AVC/H264
  • VC-1
(any)
container
  • MPEG-2 TS
  • (direct)
  • MP4
  • QuickTime
  • WMedia
  • RealNetworks
  • Flash Video
  • ...
service discovery

SD&S
transmission progressive download
  • HTTP
  • FTP
- x
streaming live
video MPEG-2 RFC 2250
H264 RFC 3984
VC-1 RFC 4425
audio AAC RFC 3640
AMR-WB+ RFC 4352

x
on-demand x x
network delivery unicast
content on-demand x
multicast
x x
p2p
- x
receiver STB
x -
PC
  • Media Centre
  • browser (RTSP)
  • media player (RTP/RTCP)

Streaming

RTP

  • Problemes / Problems
  • Implementations:
  • SDP
    • SDP documents
    • SDP in gstreamer
    • RTP audio video profile (wp)



    • info


      v=0
      c=IN IP4 $multicast_address
      m=video $video_rtp_port RTP/AVP $rtp_video_payload_type
      a=rtpmap:$rtp_video_payload_type H264/90000
      m=audio $audio_rtp_port RTP/AVP $rtp_audio_payload_type
      a=rtpmap:$rtp_audio_payload_type ${audio_media_subtype}/${rate}/${channels}


      video
      H.264
      m=video 5100 RTP/AVP 96
      a=rtpmap:96 H264/90000
      a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAH6zZQFAFuhAAAAMAEAAAAwMA8YMZYA==,aOvssiw=; profile-level-id=64001F
      m=video 5100 RTP/AVP 96
      a=rtpmap:96 H264/90000
      a=fmtp:96 packetization-mode=1
      VP8
      m=video 5100 RTP/AVPF 96
      a=rtpmap:96 VP8/90000
      a=fmtp:96 max-fr=30; max-fs=3600;

      VP9
      m=video 5100 RTP/AVPF 96
      a=rtpmap:96 VP9/90000
      a=fmtp:96 max-fr=30; max-fs=3600


      audio AAC (48000Hz, 2 channels)
      m=audio 5102 RTP/AVP 97
      a=rtpmap:97 mpeg4-generic/48000/2


      opus (48000Hz, 2 channels) m=audio 5102 RTP/AVP 97
      a=rtpmap:97 opus/48000/2

      a=fmtp:97 sprop-stereo=1


    • SDP generats / Generated SDP:
      • when a single instance of ffmpeg generates several rtp streams, the option sdp-file contains all the streams. To split them, use the following script:
        • sdp_split.sh
          • #!/bin/bash

            common_sdp_path=$1

            common_sdp_dirname=$(dirname $common_sdp_path)
            common_sdp_basename=$(basename $common_sdp_path)
            common_sdp_name=${common_sdp_basename%.*}

            # remove all windows line feeds (^M)
            sed -i 's/\r//g' ${common_sdp_path}

            # get the number of video streams
            number_videos=$(grep "m=video" ${common_sdp_path} | wc -l)

            for (( video=1; video<=$number_videos; video++ ))
            do
                output_sdp_path="${common_sdp_dirname}/${common_sdp_name}_${video}.sdp"
                echo "${output_sdp_path}"

                awk -v selected_video=${video} '
            BEGIN {block=0; }
            #sub(/\r/,"", $0)
            /^v=/ {flag=1}
            /^s=/ {$0=$0 "_" selected_video}
            /^m=video/ {block++}
            flag {if (block==0 || block==selected_video) {print $0}}
            ' ${common_sdp_path} >${output_sdp_path}

            done
                   
            exit 0

      • RTP (vlc)
        • v=0
          o=- 15549874082820351558 15549874082820351558 IN IP4 localhost
          s=toto
          i=N/A
          c=IN IP4 234.1.2.3/255
          t=0 0
          a=tool:vlc 2.1.5
          a=recvonly
          a=type:broadcast
          a=charset:UTF-8

          m=audio 1234 RTP/AVP 96
          b=RR:0
          a=rtpmap:96 mpeg4-generic/48000/6
          a=fmtp:96 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=11b0; SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;

          m=video 1236 RTP/AVP 96
          b=RR:0
          a=rtpmap:96 H264/90000
          a=fmtp:96 packetization-mode=1;profile-level-id=64001f;sprop-parameter-sets=Z2QAH6zZgFAEWhAAAAMAEAAAAwMA8YMZoA==,aOl4TLIs;
      • TS over RTP (vlc)
        • v=0
          o=- 15549875101994746492 15549875101994746492 IN IP4 localhost
          s=toto
          i=N/A
          c=IN IP4 234.1.2.3/255
          t=0 0
          a=tool:vlc 2.1.5
          a=recvonly
          a=type:broadcast
          a=charset:UTF-8

          m=video 5004 RTP/AVP 33
          b=RR:0
          a=rtpmap:33 MP2T/90000
      • ffmpeg -f sap sap://234.1.2.3?same_port=0 (default)
        • v=0
          o=- 0 0 IN IP4 127.0.0.1
          s=Sintel
          t=0 0
          a=tool:libavformat 55.12.100

          m=video 5004 RTP/AVP 96
          c=IN IP4 234.1.2.3/255
          b=AS:1615
          a=rtpmap:96 H264/90000
          a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAH6zZgFAEWhAAAAMAEAAAAwMA8YMZoA==,aOl4TLIs; profile-level-id=64001F

          m=audio 5006 RTP/AVP 97
          c=IN IP4 234.1.2.3/255
          b=AS:440
          a=rtpmap:97 MPEG4-GENERIC/48000/6
          a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=11B0
      • ffmpeg -f sap sap://234.1.2.3?same_port=1
        • v=0
          o=- 0 0 IN IP4 127.0.0.1
          s=Sintel
          t=0 0
          a=tool:libavformat 55.12.100

          m=video 5004 RTP/AVP 96
          c=IN IP4 234.1.2.3/255
          b=AS:1615
          a=rtpmap:96 H264/90000
          a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAH6zZgFAEWhAAAAMAEAAAAwMA8YMZoA==,aOl4TLIs; profile-level-id=64001F

          m=audio 5004 RTP/AVP 97
          c=IN IP4 234.1.2.3/255
          b=AS:440
          a=rtpmap:97 MPEG4-GENERIC/48000/6
          a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=11B0
  • Tests (only video)




    • ffplay
      gstreamer




      generated SDP
      sdp
      sdp
      caps




      ffplay -protocol_whitelist rtp,udp,file,http,https,tcp,tls -i test.sdp gst-launch-1.0 filesrc location=test.sdp ! sdpdemux name=demux demux. ! queue ! decodebin ! autovideosink gst-launch-1.0 udpsrc address=127.0.0.1 port=5004 ! "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)64001f,  payload=(int)96" ! queue ! rtph264depay ! decodebin ! autovideosink gst-launch-1.0 udpsrc address=127.0.0.1 port=5004 ! "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)64001f, sprop-parameter-sets=(string)\"...\", payload=(int)96" ! queue ! rtph264depay ! decodebin ! autovideosink
      ffmpeg
      test
      ffmpeg -re -f lavfi -i "testsrc=size=1280x720:rate=24" -c:v libx264 -b:v 700k -pix_fmt yuv420p -profile:v high -level:v 31 -f rtp rtp://127.0.0.1:5004 -sdp_file test.sdp
      SDP:
      v=0
      o=- 0 0 IN IP4 127.0.0.1
      s=No Name
      c=IN IP4 127.0.0.1
      t=0 0
      a=tool:libavformat 57.71.100
      m=video 5004 RTP/AVP 96
      b=AS:700
      a=rtpmap:96 H264/90000
      a=fmtp:96 packetization-mode=1
      correct
      correct
      There may be a timestamping problem, or this computer is too slow.
      • sprop from gstreamer test: correct
      • sprop from bbb: There may be a timestamping problem, or this computer is too slow.
      file
      ffmpeg -re -i bbb.mp4 -c:v copy -an -f rtp rtp://127.0.0.1:5004 -sdp_file test.sdp SDP:
      v=0
      o=- 0 0 IN IP4 127.0.0.1
      s=No Name
      c=IN IP4 127.0.0.1
      t=0 0
      a=tool:libavformat 57.71.100
      m=video 5004 RTP/AVP 96
      b=AS:698
      a=rtpmap:96 H264/90000
      a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAH6zZQFAFuhAAAAMAEAAAAwMA8YMZYA==,aOvssiw=; profile-level-id=64001F
      correct
      videodecoder gstvideodecoder.c:2775:gst_video_decoder_prepare_finish_frame:<avdec_h264-0> decreasing timestamp (0:00:33.104109030 < 0:00:33.126489781)
      does not start playing
      • sprop from gstreamer test: correct
      • sprop from bbb: There may be a timestamping problem, or this computer is too slow.
      gstreamer
      test
      gst-launch-1.0 -v videotestsrc ! video/x-raw,framerate=24/1,width=1280,height=720 ! videoconvert ! x264enc ! video/x-h264,stream-format=byte-stream,profile=high ! rtph264pay config-interval=10 pt=96 ! udpsink host=127.0.0.1 port=5004 v=0
      o=- 0 0 IN IP4 127.0.0.1
      s=No Name
      c=IN IP4 127.0.0.1
      t=0 0
      a=tool:libavformat 57.71.100
      m=video 5004 RTP/AVP 96
      b=AS:700
      a=rtpmap:96 H264/90000
      a=fmtp:96 packetization-mode=1
      correct
      correct
      correct
      • sprop from gstreamer test: correct
      • sprop from bbb: There may be a timestamping problem, or this computer is too slow.
      file
      gst-launch-1.0 -v filesrc location=bbb_timecode_1280x720_700k_stereo.mp4 ! qtdemux name=demux demux.video_0 ! rtph264pay config-interval=10 pt=96 ! udpsink host=127.0.0.1 port=5004 v=0
      o=- 0 0 IN IP4 127.0.0.1
      s=No Name
      c=IN IP4 127.0.0.1
      t=0 0
      a=tool:libavformat 57.71.100
      m=video 5004 RTP/AVP 96
      b=AS:700
      a=rtpmap:96 H264/90000
      a=fmtp:96 packetization-mode=1
      correct
      videodecoder gstvideodecoder.c:2775:gst_video_decoder_prepare_finish_frame:<avdec_h264-0> decreasing timestamp (0:00:09.945574289 < 0:00:09.953238304)
      There may be a timestamping problem, or this computer is too slow.
      • sprop from gstreamer test: correct (!)
      • sprop from bbb (gstreamer verbose): There may be a timestamping problem, or this computer is too slow.

RTMP

HTTP Streaming

Audio/Video

Descàrrega progressiva / Progressive download

Programari / Software

Projectes europeus / European projects

Conferències / Conferences

Música / Music

Platform Components Technology Where / affiliates
Pressplay
(Duet)
  • Sony
  • Vivendi Universal
  • EMI
  • Madacy, Navarre, OWIE, Razor & Tie, Roadrunner, Rounder
  • TVT Records
  • Zomba

Musicnet

  • Virgin
  • HMV
Tornado

Xarxes CDN / Content Delivery Networks (CDN)

SRT Secure Reliable Transport

Gestió de drets / Rights Management (DRM)

Xifratge / Encryption

  • Estaǹdards / Standards
  • Eines / Tools

    command (Bento4)
    standard
    encrypt
    decrypt
    DCF
    mp4dcfpackager --method CTR
    --content-id cid:toto
    --key 000102030405060708090a0b0c0d0e0f:00000000000000000000000000000000
    toto.mp4 toto.dcf
    mp4decrypt
    --key 1:00112233445566778899aabbccddeeff
    toto.dcf toto.odf
    mp4extract toto.odf
    PDCF
    mp4encrypt --method OMA-PDCF-CTR
    --key 1:000102030405060708090a0b0c0d0e0f:0000000000000000
    --key 2:000102030405060708090a0b0c0d0e0f:0000000000000000
    toto.mp4 toto.pdcf
    mp4decrypt
    --key 1:000102030405060708090a0b0c0d0e0f:0000000000000000
    --key 2:000102030405060708090a0b0c0d0e0f:0000000000000000
    toto.pdcf toto.mp4

Gestió de pagaments / Payment management

Formats (*)

Continguts / Contents

Seqüències / Sequencies

P2P (Peer to peer)

Reproductors MP3 Players



dim LCD ràdio recording bluetooth video doc preu





dim res colors FM RDS FM line mic


1GB
(Z)
2GB (Q) 4GB
(A)










live prog







Samsung YP-F2R 28 52 15


x x -
-






YP-T7 37 62 14
96x96 65K - - -
-
-




YP-T7F 37 62 14 1,2" 96x96 262K x x x x x
- MPEG4
135, 138+9+iva

YP-T8 44 83 15 1,8" 128x160 262K x - x


-


169
YP-T9J
(unoff)
43 83 11 1,8" 172x220 262K x x x - - x x SVI: XVID 208x176 15 fps pdf 169+9+iva 155+9,9ii
189+9+iva
169+22ii
239+9+iva
199+22ii
YP-Z5F 42 90 12 1,8" 128x160
x x x
-

MPEG4
118 159, 149
F: FM
X: 512MB
Z: 1GB
Q: 2GB
A: 4GB

http://www.francescpinyol.cat/online_audio_video.html
Darrera modificació: 12 de desembre de 2018 / Last update: 12th December 2018

Cap a casa / Back home.