Audio / Video
Seccions d'aquesta pàgina 35
- 01General
- 02Resolucions / Resolutions
- 03Resolucions de pantalla / Screen resolutions
- 04Pantalles / Screens
- 05Programari / Software
- 063D Vídeo
- 07DLNA / UPnP
- 08Resolucions vídeo digital / Digital video resolutions
- 09Relació d'aspecte / Aspect ratio
- 10Refresc / Framerates
- 11Entrellaçat / Interlace
- 12Colorimetria / Colorimetry
- 13Sincronització àudio/vídeo / Audio/video synchronisation
- 14Pantalles TV Screens - Distàncies/Distances
- 15Acústica / Acoustics
- 16Àudio / Audio
- 17Càmeres / Cameras
- 18Car audio
- 19Comercial / Commercial
- 20Component Connectivity
- 21Connexions / Connections
- 22DAC (Digital to Analogue Converter)
- 23DV
- 24Discs
- 25Gestió de drets / Rights Management
- 26Home Cinema
- 27Home Theater PC (HTPC)
- 28Maquinari / Hardware
- 29MIDI
- 30Minidisc
- 31MP3 ( MPEG -1 Layer III)
- 32Qualitat / Quality
- 33Salons / Events
- 34AFD Active Format Description
- 35Auriculars
01General#
- DLNA
- ePanorama
- Leopold's Audio/Video Page
- Multimedia Wiki
- Remote Central
- Multimedia stuff
- Video Help
- AV Science Forum
- Diagramas de conectividad (Sony)
- HQV Benchmark
- Stream #0 (Linux Multimedia - Video and Audio discussion, review and How-To)
- "Solving the component puzzle" (Tektronix)
| video | audio | |||
|---|---|---|---|---|
| Analogue | 4:3 |
|
||
| 16:9 |
|
|||
| Digital | NICAM |
|
||
| MPEG | 1 |
|
||
|
||||
| 2 |
|
|||
|
||||
| 4 |
|
|||
|
||||
| Dolby Digital (AC-3) | ||||
| DTS | ||||
| PCM | ||||
|
||||
| DVD-Audio | ||||
| ATRAC | ||||
| DSD | ||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
02Resolucions / Resolutions#
- Resolucions de pantalla / Screen resolutions
- Resolucions de vídeo digital / Digital video resolutions
- Android camera parameters
| width | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 128 | 176 | 320 | 352 | 360 | 384 | 400 | 480 | 528 | 544 | 640 | 704 | 720 | 768 | 800 | 853 | 960 | 1024 | 1056 | 1152 | 1280 | 1366 | 1400 | 1408 | 1440 | 1600 | 1680 | 1920 | 2048 | 3840 | ||
| height | 96 | SQCIF | |||||||||||||||||||||||||||||
| 120 | QCIF | ||||||||||||||||||||||||||||||
| 144 | QCIF | ||||||||||||||||||||||||||||||
| 176 | W-QVGA | ||||||||||||||||||||||||||||||
| 200 | CGA | ||||||||||||||||||||||||||||||
| 220 | QCIF+ | ||||||||||||||||||||||||||||||
| 240 | QVGA | CIF-601, D4, SIF* | SIF | ||||||||||||||||||||||||||||
| 288 | CIF-601, D4, SIF* | SIF | x | D3 | |||||||||||||||||||||||||||
| 320 | x | HVGA | |||||||||||||||||||||||||||||
| 350 | EGA | ||||||||||||||||||||||||||||||
| 352 | x | ||||||||||||||||||||||||||||||
| 360 | nHD | ||||||||||||||||||||||||||||||
| 384 | x | ||||||||||||||||||||||||||||||
| 480 | 1/2 D1, D2 | 2/3 D1 | 3/4 D1 | x | VGA | CCIR-601, D1, 4CIF | CCIR-601, D1 | x | W-VGA | W-VGA | |||||||||||||||||||||
| 512 | x | ||||||||||||||||||||||||||||||
| 544 | x | ||||||||||||||||||||||||||||||
| 576 | 1/2 D1, D2 | 2/3 D1 | 3/4 D1 | x | CCIR-601, D1, 4CIF | CCIR-601, D1 | x | W-SVGA | |||||||||||||||||||||||
| 600 | SVGA | ||||||||||||||||||||||||||||||
| 720 | x | 9CIF | 720 | ||||||||||||||||||||||||||||
| 768 | XGA | W-XGA | W-XGA | ||||||||||||||||||||||||||||
| 800 | W-XGA | ||||||||||||||||||||||||||||||
| 854 | XGA+ | ||||||||||||||||||||||||||||||
| 864 | 9CIF | ||||||||||||||||||||||||||||||
| 900 | W-XGA+ | ||||||||||||||||||||||||||||||
| 960 | x | 16CIF | |||||||||||||||||||||||||||||
| 1024 | SXGA | ||||||||||||||||||||||||||||||
| 1035 | x | ||||||||||||||||||||||||||||||
| 1050 | SXGA+ | W-SXGA+ | |||||||||||||||||||||||||||||
| 1080 | x | 1080 | |||||||||||||||||||||||||||||
| 1152 | 16CIF | x | x | ||||||||||||||||||||||||||||
| 1200 | UXGA | W-UXGA | |||||||||||||||||||||||||||||
| 1536 | QXGA | ||||||||||||||||||||||||||||||
| 2160 | 4K | ||||||||||||||||||||||||||||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 5:4 (1.25)
- 4:3 (1.33)
- 16:10 (1.60)
- 15:9 (1.66)
- 16:9 (1.77)
03Resolucions de pantalla / Screen resolutions#
| name | resolution | aspect | W name | W resolution | aspect | used |
|---|---|---|---|---|---|---|
| QXGA | 2048x1536 | 1.33 (4:3) | ||||
| UXGA | 1600x1200 | 1.33 (4:3) | W-UXGA | 1920x1200 | 1.60 (16:10) | |
| 1920x1080 | 1.77 (16:9) | Full HD | ||||
| SXGA+ | 1400x1050 | 1.33 (4:3) | W-SXGA+ | 1680x1050 | 1.60 (16:10) | |
| SXGA | 1280x1024 | 1.25 (5:4) | ||||
| XGA+ | 1152x854 | 1.35 | W-XGA+ | 1440x900 | 1.60 (16:10) | |
| XGA | 1024x768 | 1.33 (4:3) | W-XGA | 1366x768 | 1.77 (16:9) | HD Ready |
| 1280x768 | 1.66 (15:9) | |||||
| 1280x800 | 1.60 (16:10) | |||||
| SVGA | 800x600 | 1.33 (4:3) | W-SVGA | 1024x576 (Sharp Aquos P) | 1.77 (16:9) | |
| nHD | 640x360 | 1.77 (16:9) | ||||
| VGA | 640x480 | 1.33 (4:3) | W-VGA | 853x480 | 1.77 (16:9) | |
| 800x480 | 1.66 (15:9) | |||||
| EGA | 640x350 | 1.82 | ||||
| HVGA | 480x320 | 1.33 (4:3) | ||||
| QVGA | 320x240 | 1.33 (4:3) | W-QVGA | 320x176 | 1.81 | |
| CGA | 320x200 | 1.6 |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
04Pantalles / Screens#
- TV Displays: a progress report (pdf) (29 Jun 2009) (EBU Technical)
- LCD
- Colorimetria /
Colorimetry
- Wide-Gamut displays (pdf)
05Programari / Software#
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- General
- Reproductors / Players
- Contenidors / Containers
- Codecs
- EBU
- ebu / awesome-broadcasting
- Fil de pàgines web amb recursos gratuïts útils per a creadors audiovisuals
- Open source codecs and containers
- LinuxTV Wiki / Software
- Linux tutorial: video, DVD, DVD player, TV and multimedia
- DVD Digest Downloads
- Linux Software Map (dmeyer)
- Sound & MIDI Software For Linux (.at)
- Mandrivalinux
- LinuxVideo
- Video (Softpedia)
- Open source at the movies
- Open Source Video
- DIY broadcast: how to build your own TV channel with open-source (Blog Eltrovemo, Nicolas Weil)
- Gestió de continguts mèdia / Media content management
-
- Activae (Cenatic)
- Kaltura
- Biblioteques / Libraries
- Multimedia
frameworks
impl Linux MSWindows Mac Symbian DirectShow ffdshow libavcodec Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
x
ffmpeg (libavcodec / libavformat)
x x
GStreamer
x
IP Studio (BBC Research)
MAS
x
MLT (Media Lovin' Toolkit) (broadcasters)
x
MMF
x NMM
x
OSMF (Adobe)
(Open Source Multimedia Framework)
Quicktime
x
VfW ffdshow libavcodec Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
x
xine libavcodec x
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- IP Studio (BBC Research)
- libav (fork from ffmpeg)
-
- Compilació / Compilation
- Conversió / Transcoding
- FAQ
- Eines / Tools
- versions:
release
*_VERSION_MAJOR.*_VERSION_MINOR
version date LIBAVCODEC libavdevice libavfilter libavformat libavutil libswscale libavresample libpostproc dev new features libavcodec/version.h
0.8 0.8.3
51
52
0.8.7
53.35.0 53.2.0 2.15.0 53.21.1 51.22.1 2.1.0
0.8.9
9 9.1
54
- libavdevice/avdevice.h
- libavutil/channel_layout.h
9.6
9.4
54
- r_frame_rate
- ...
9.8
54.35.0 53.2.0 3.3.0 54.20.3 52.3.0 2.1.1 1.0.1
9.9
54.35.0
9.10
54.35.0 53.2.0 3.3.0 54.20.3 52.3.0 2.1.1 1.0.1
- libavcodec/avcodec.h
-
- AVFrame.channel_layout
10
55.34.1
git
55
- avcodec_open ->avcodec_open2
libavcodec libavdevice libavfilter libavformat libavutil libswscale libavresample libpostproc
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- from source code (e.g. in GPAC):
-
#include "libavcodec/version.h"
#if (LIBAVCODEC_VERSION_MAJOR>53)
#include "libavutil/channel_layout.h"
#else
#endif
- ffmpeg
(.org) (sf)
/ ffmpegX
(MacOX) / ffmbc
(*)
/ ffmpeg-php
- Docs
- framerate:
- tbr: from container (e.g. 25)
- tbn: container (e.g. 90k)
- tbc: codec (e.g. 50)
- [FFmpeg-user] What does the output of ffmpeg mean? tbr tbn tbc etc?
- "codec frame rate differs from container frame rate" (interlaced vs progressive?)
- framerate:
- conversió / transcoding (options)
- Versions:
release *_VERSION_MAJOR.*_VERSION_MINOR
version date LIBAVCODEC libavdevice libavformat libavfilter libavutil libswscale libavresample libpostproc deprecates dev new features mageia libavcodec/version.h
1.1 1.1.5
54.3.102 54.59.106
- lib64avformat54
-
- libavdevice
- libavformat
1.2 1.2.4 2013-10-03 54. 92.100
2.0 2.0.1
2.0.2 2013-10-08 55.18.102
2.1 2.1.1 2013-11-20 55.39.101 55.5.100 55.19.104 3.90.100 52.48.101 2.5.101 0.17.104 52.3.100
2.1.2
55.39.101 55.5.100 55.19.104 3.90.100 52.48.101 2.5.101 0.17.104 52.3.100
2.2 2.2.1
55.52.102
2.3 2.3.3
2.4
2.8
3.0
3.1
3.2
3.3
3.4
4.2
4.4
5.0
hls_wrap
5.1
59. 37.100
git git
...
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- ffmpeg-mt (multithreaded)
- An ffmpeg and SDL Tutorial or How to Write a Video Player in Less Than 1000 Lines
- FFmpeg wishlist
- How to install ffmpeg, Mplayer, mencoder,FLVtool2 and Yamdi on Plesk Linux based
- vhook
- GUI
-
- Avanti
- ffmpeg-GUI (*) (de)
- Java
- jffmpeg
- FMJ
- FFMPEG-Java
(
urpmi ffmpeg-java ffmpeg-java-javadoc) - Theora-Java
- FFMPEG-Java
(
- lists
- official
- gmane.comp.video.ffmpeg.devel
- Instal·lació / Installation
-
- compilació des de codi font / compilation from source
- packages
-
- CentOS
-
- How to setup multimedia on CentOS 7
yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpmyum -y install ffmpeg
- Mageia
-
-
rpm lib include name 2007.0 plf
2007.02007.1 avformat avcodec postproc util avformat avcodec postproc util libavformats
51 libavformat.so.51
50
libavformat.so.50
libffmpeg
51 51
libavcodec.so.51 libpostproc.so.51
libavutil
49 49
libavutil.so.49
libffmpeg-devel
51 51
avformat.h avcodec.h postprocess.h avutil.h Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- Debian
-
- Raspbian (Raspberry Pi)
-
- Install On Raspbian (motionEye)
-
wget https://github.com/ccrisan/motioneye/wiki/precompiled/ffmpeg_3.1.1-1_armhf.debsudo dpkg -i ffmpeg_3.1.1-1_armhf.deb
- deb-multimedia.org
- Desenvolupament / Development
- bugs
- PAFF
(samples)
- [Ffmpeg-devel] h264/PAFF interlacing (6 dec 2006)
- [Ffmpeg-devel] PAFF, revisited (5 feb 2007)
- [Ffmpeg-devel] [Bug] h264 decoder crash (sample included) (7 feb 2007)
- [Ffmpeg-devel] [BUG] Segfault in h264 decoder on corrupt input (14 mar 2007)
- PAFF decoding for H.264/AVC (Summer of Code 2007)
- PAFF
(samples)
- Docs
- GPAC (github) (source forge)
-
- GPAC Licensing | GPAC for the industry
- Info
-
- Equipe GPAC «Groupe Multimédia»
-
- Publications récentes
-
- includes MPEG documents
- Cyril Telecom Paris Tech (Cyril Concolato)
- Forums / Discussion (Source Forge)
- doom9
- Tools
-
- Packager: MP4Box (MP4/3GP, Hinting, BIFS, LASeR, SVC)
- Player: Osmo4 (BIFS, VRML, SVG, LASeR, MP4/3GP)
-
- MPD_in plug-in for HTTP streaming
- Server tools:
-
- Streaming
- DASH / HTTP streaming
- LASeR streaming
- RTP streamer with DVB-H simulation
- MPEG-2 TS broadcaster
- BIFS broadcaster...
- Desenvolupament / Development
- Instal·lació / Installation
-
- Compilació / Compiling
urpmi gpac(PLF)- GPAC on Android
-
- GPAC on Galaxy Tab
gpac/applications/osmo4_android-
build/android/jni/gpac_build_android PATH_TO_ANDROID_NDK
- GUI
- MP4Box usage:
-
- General documentation
-
MP4Box -add toto.264 -fps 25 toto.mp4
- man mp4box
- MP4Box.js
- LASeR
- Extraction of binarised LASeR access units:
-
- MP4Box -mp4 toto.xml
- MP4Box -raws 1 toto.mp4
- MP4Box -nhml 1 toto.mp4
- manually extract each access unit from toto_track1.media, according to lengths given by toto_track1.nhml
- SVC
- Hinting
- HTTP streaming with GPAC
- Fragmentació / Fragmentation
- Information about a file:
-
MP4Box -info toto.mp4 2> toto.info
- Anàlisi / Analysis (structure) of a file (output in XML format)
-
MP4Box -diso toto.mp4- resulting file can be opened with an xml editor, e.g. qxmledit (try column view):
-
qxmledit toto_info.xml
- Logs
-
MP4Box -lf mp4box-bug-log.txt -logs all@debug ...
- Problemes / Problems:
- MP4Client usage:
-
- man mp4client
- usage
-
MP4Client -help
- play from udp (TS)
-
MP4Clientudp://234.1.2.3:1234
- logs:
-
MP4Client -log-file toto.log -logs toolX[:toolZ]@levelX- tools:
-
core, coding, container, network, rtp, author, sync, codec, parser, media, scene, script, interact, smil, compose, mmio, rti, cache, audio, dash, module, mutex, all
- levels:
-
quiet, error, warning, info, debug
- examples:
-
MP4Client -log-file toto.log -logs all@debug ...MP4Client -logs dash@info toto.mpd
- in .gpacrc
- representation switching:
-
- with cursor over the display window: CTRL-h, CTRL-l
- GPAC
Configuration file documentation (
~/.gpacrc) -
- buffer
-
- BufferMode (rev >=5186) (to choose whether minBufferTime is taken into account)
-
[DASH]
BufferMode=segments
- to
avoid:
[IsoMedia] Buffer level 3983 ms higher than max allowed 3000 ms - skipping dispatch - when playing DASH
-
- Network/BufferLength parameter determines how many segments are pre-downloaded
- in live, if BufferLength is too high, waiting for not yet available segments in order to fill the buffer, will cause a black screen
- 10000ms (default is 3000ms)
-
[Network]
BufferLength=10000
- activate stdout logs:
-
[General]
Logs=codec@debugLogs=codec:container:media:module@debugLogs=core:coding:container:network:rtp:author:sync:codec:parser:media:scene:script:interact:compose:cache:mmio:rti:smil:audio:module:mutex@debug
- Osmozilla usage (compilation):
-
- Browser integration
- Example gpac.html
- HbbTV player
- MLT (Media Lovin' Toolkit) (sf) (broadcasters)
-
- Aplicacions / Applications
-
- melt
-
- used by
kdenlive_render(scripts generated by kdenlive) - Tutorial videos by Kris Occhipinti
- Command-line video editing in Linux (cut, join and preview)
- show all available consumers:
-
melt -query "consumers"
- MTS: show the first 20 frames from 00650.MTS and then the first 10 frames from 00651.MTS:
-
melt 00650.MTS in=0 out=20 00651.MTS in=0 out=10
- generation of an xml file:
-
melt ... -consumer xml > toto.xmlmelt ... -consumer xml:toto.xml
- used by
- Melted Video Server
-
- uses MVCP
- Shotcut (editor)
- Used by:
-
- KDEnlive
- OpenShot
- Kaltura (kaltura.com) (Media Management System)
-
- upload and ingestion (digital asset management)
- video management
- video player
- video publishing
- transcoding and processing
- mobile & HTML5 video
- OTT
- Editors
- Projects
- source
-
- repository
- github
- HTML5 Video & Media JavaScript Library
- integration with LMS
- Video outputs (VLC)
- xvideo
- xv test aps, xvmc... (Mark Voikovich)
- Extremely poor XVIDEO performance with Radeon (xfree86 bugs)
- xawtv and fullscreen (dga)
- XFree86 4.x tips & tricks (xawtv)
- XvMC API (Mark Voikovich)
- xv / xawdecode (manuel/config/xv)
- framebuffer
- fbdev
- The Linux Frame Buffer Device Subsystem
- DocumentationPage/MatroxInfo (Freevo)
- vesa
- vesa, ati, 2.5 kernel (mdk list)
- atyfb
- Firewire (IEEE 1394)
- MJPEG Tools
- radeonfb
- Linux on a ThinkPad R32 (lilo)
- IBM ThinkPad T30 under Linux (x11)
- Linux on the Sony Vaio PCG-C1MHP aka Picturebook (fbset)
- gentoo
- llistes
- Yellow Dog Linux 2.1 and Power Mac G4 w/Radeon (lilo)
- Radeon 9000 Pro and Framebuffer (memory)
- More radeonfb fixes (mini howto)
- ATI Radeon Mobility M6 LY and BenH Kernel on New ibooks (XFree)
- svgalib
- development versions
- mandrakelinux
- problemes amb vm86 (syscalls)
- DirectFB
- vesa
- Cairo
- Multimedia
frameworks
- Aplicacions d'àudio / Audio appplications
- Audio and Music Applications for Silicon Graphics Systems (http)
- Audio & MIDI (Silicon Graphics)
- Audio applications at SGI Web Install Site
- Porting SGI Audio Applications to Linux
- Sound & MIDI Software For Linux (Europe)
- Software from NoTAM
- Rosegarden music software
- MPEG-1 Layer III audio
- Computer Music Links
- Ogg Vorbis
- Audiotools
- Stream Central
- Shareware Music Machine (Hitsquad.com - Musician's Web Center)
- Signal Analysis/Processing Software
- Some Interesting Sound & MIDI Software For Linux
- Computer Music Links
- tapelab (audio cassette labels)
- kaudiocreator
- Pilots d'àudio /
Audio drivers
- Open Sound System (OSS)
- Opensound OSS (comm)
- OSSFree (opensound)
- The Linux Sound System
- SGI OSS
- ALSA project
- aconnectgui
- kalsatools (QAMix, QARecord, KAconnect, KWaveView)
- Soundblaster Audigy (MIDI playback)
- USBUA100 driver
- Open Sound System (OSS)
- Servidors de so / Sound servers
- Reproductors d'àudio / Audio players
- Edició d'àudio /
Audio edition
- Audacity
- DAP (digital audio processor)
- Mix
- SOX
- Sound eXchange
- Studio (gui)
- Veu / Speech
- Síntesi / Synthesis
- Transcriber (manual annotation)
- Captura / Capture
-
- Capture HDV in Linux using dvgrab
- Command line
-
dvcont rewinddvgrab -f hdv -autosplit -timestamp filename
- Mixer
-
- Brave (BBC)
- WebRenderSrc (WIP) (based on CEF)
- Freej
- gst-switch (deprecated in favour of Voctomix)
- Snowmix (sf)
- Voctomix
- based on MLT
-
- melt
- Melted
- Brave (BBC)
- Edició
de vídeo / Video edition
- Edició DVB Edition
- Captura / Capture
- Edició HTML5 video / HTML5 video edition
- Top 5 Linux Video Editor Software
- Comparison of video editing software (wp)
- 30 Video Editing Software And Online Tools
- Online Video Editing: The Best Web-Based Video Editing Tools - A Mini-Guide
- Avisynth
- Cinelerra
- Film Gimp Cinepaint
- kdenlive (*)
- Kino (Linux DV)
- Linux Video Editor - LVE
- Motion Perfect (DynaPel)
- PiTiVi
- VirtualDub
- Linux Video Studio ($)
- Anàlisi d'esports / Sport analysis (video analysis software)
-
- LongoMatch: The digital coach (anotació de vídeos d'esport / sport video annotation)
- Kinovea
- Dartfish
- Video Repair/Fix (VideoHelp)
- Open Movie Editor
- Kaltura
- VLMC (videolan)
- Media Lovin' Toolkit (MLV)
- MTS (H.264 on MPEG-2 TS) files from camera
-
- Thread: How to merge multiple .mts files (canon HF) into one single .mts file
- Concatenació / Concatenation
- Commercial
- Diaporama / Slideshow
-
- ffDiaporama (Videoporama)
- PhotoFilmStrip
- Imagination
- (Google Photos)
- Multimedia (video + audio)
- Reproductors
multimèdia / Multimedia players
-
Linux MSWindows - Totem (<2.27.1)
- Xine (xine-ui)
- CoreAVC
- Core Media Player
- Foobar 2000
- MediaPlayer Classic
- Radlight
- Winamp
- Windows Media Player
- Zoomplayer
frontend
GStreamer xine-lib
DirectShow
engine / multimedia framework
- libavformat (ffmpeg)
- Haali Media Splitter
container DS filter - MPEG Codecs (fluendo)
- Windows Media codecs (fluendo)
- GStreamer FFmpeg plug-in
- gstreamer-dirac
- gstreamer-schroedinger
- libavcodec (ffmpeg)
- libx264 (H.264)
- vlc-plugin-schroedinger (Dirac)
codec Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Comparison of media players (wp)
- Reproductors integrats al navegador (HTML5 video) / Browser embedded players (HTML5 video)
-
- HTML5 Video Player Comparison (HTMLvideo.org)
- Amalia.js (metadata enriched HHTML5 video player)
- Popcorn (Mozilla)
-
owner HTTP streaming DRM encryption thumbnails subtitles playback speed advertising VR/360 chromecast analytics skin mobile SDK license
MPEG-DASH HLS
dash.js Dash Industry Forum x
hls.js (Native HLS Playback) Dailymotion
x
Shaka player Google x
Videogular (AngularJS video players)
bower-videogular-hls (uses hls.js)
jPlayer
Apache Video.js Brightcove videojs-tech-dashjs
(uses dash.js)Plugins
Codepen
commercial Bitmovin player
x
x
x x
Flowplayer
JWPlayer
x Radiant Media Player
THEO Player
x x
x x x x x
x x
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Shaka player
- Basic usage
- UI Library: basic usage
- single video
<!DOCTYPE html>
<html>
<head>
<!-- https://shaka-project.github.io/shaka-player/docs/api/tutorial-ui.html -->
<!-- Shaka Player UI compiled library: -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/4.16.3/shaka-player.ui.min.js"></script>
<!-- Shaka Player UI compiled library default CSS: -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/4.16.3/controls.min.css" integrity="sha512-VVTMhXUfaI5XuygHg9WaFMl6+CvYubOCeV0bpEXT62Z8U9XnyYCB6yKkm358R2tfCaMC6oGMZQNi+gCSRrdHhA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>
<!-- The data-shaka-player-container tag will make the UI library place the controls in this div. -->
<div data-shaka-player-container style="max-width:40em">
<!-- The data-shaka-player tag will make the UI library use this video element.
If no video is provided, the UI will automatically make one inside the container div. -->
<video autoplay data-shaka-player id="video" style="width:100%;height:100%" src="https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd"></video>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<!-- https://shaka-project.github.io/shaka-player/docs/api/tutorial-ui.html -->
<!-- Shaka Player UI compiled library: -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/4.16.3/shaka-player.ui.min.js"></script>
<!-- Shaka Player UI compiled library default CSS: -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/4.16.3/controls.min.css" integrity="sha512-VVTMhXUfaI5XuygHg9WaFMl6+CvYubOCeV0bpEXT62Z8U9XnyYCB6yKkm358R2tfCaMC6oGMZQNi+gCSRrdHhA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<!-- Chromecast SDK (if you want Chromecast support for your app): -->
<script defer src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>
<script>
const manifestUri =
'https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd';
async function init() {
// When using the UI, the player is made automatically by the UI object.
const video = document.getElementById('video');
const ui = video['ui'];
const controls = ui.getControls();
const player = controls.getPlayer();
// Attach player and UI to the window to make it easy to access in the JS console.
window.player = player;
window.ui = ui;
// Listen for error events.
player.addEventListener('error', onPlayerErrorEvent);
controls.addEventListener('error', onUIErrorEvent);
// Try to load a manifest.
// This is an asynchronous process.
try {
await player.load(manifestUri);
// This runs if the asynchronous load is successful.
console.log('The video has now been loaded!');
} catch (error) {
onPlayerError(error);
}
}
function onPlayerErrorEvent(errorEvent) {
// Extract the shaka.util.Error object from the event.
onPlayerError(event.detail);
}
function onPlayerError(error) {
// Handle player error
console.error('Error code', error.code, 'object', error);
}
function onUIErrorEvent(errorEvent) {
// Extract the shaka.util.Error object from the event.
onPlayerError(event.detail);
}
function initFailed(errorEvent) {
// Handle the failure to load; errorEvent.detail.reasonCode has a
// shaka.ui.FailReasonCode describing why.
console.error('Unable to load the UI library!');
}
// Listen to the custom shaka-ui-loaded event, to wait until the UI is loaded.
document.addEventListener('shaka-ui-loaded', init);
// Listen to the custom shaka-ui-load-failed event, in case Shaka Player fails
// to load (e.g. due to lack of browser support).
document.addEventListener('shaka-ui-load-failed', initFailed);
</script>
</head>
<body>
<!-- The data-shaka-player-container tag will make the UI library place the controls in this div.
The data-shaka-player-cast-receiver-id tag allows you to provide a Cast Application ID that
the cast button will cast to; the value provided here is the sample cast receiver. -->
<div data-shaka-player-container style="max-width:40em"
data-shaka-player-cast-receiver-id="07AEE832">
<!-- The data-shaka-player tag will make the UI library use this video element.
If no video is provided, the UI will automatically make one inside the container div. -->
<video autoplay data-shaka-player id="video" style="width:100%;height:100%"></video>
</div>
</body>
</html>- multi video
<!DOCTYPE html>
<html>
<head>
<!-- https://shaka-project.github.io/shaka-player/docs/api/tutorial-ui.html -->
<!-- Shaka Player UI compiled library: -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/4.16.3/shaka-player.ui.min.js"></script>
<!-- Shaka Player UI compiled library default CSS: -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/4.16.3/controls.min.css" integrity="sha512-VVTMhXUfaI5XuygHg9WaFMl6+CvYubOCeV0bpEXT62Z8U9XnyYCB6yKkm358R2tfCaMC6oGMZQNi+gCSRrdHhA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>
<div data-shaka-player-container style="max-width:40em; display: inline-block; border-width: 2px; border-style: solid;">
Títol del primer<br>
Subtítol del primer
<video autoplay data-shaka-player id="video" style="width:100%;height:100%" src="https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd"></video>
</div>
<div data-shaka-player-container style="max-width:40em; display: inline-block; border-width: 2px; border-style: solid;">
Títol del segon<br>
Subtítol del segon
<video autoplay data-shaka-player id="video" style="width:100%;height:100%" src="https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd"></video>
</div>
<div data-shaka-player-container style="max-width:40em; display: inline-block; border-width: 2px; border-style: solid;">
Títol del tercer<br>
Subtítol del tercer
<video autoplay data-shaka-player id="video" style="width:100%;height:100%" src="https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd"></video>
</div>
</body>
</html>- Video.js
-
- Documentation
- Github
-
- videojs / video.js
- videojs / videojs-flash
- 6.x
-
- Video.js 6.0 Release!
- Instal·lació / Installation
-
npm install --save videojs-flash- it will also install videojs v6.x
- it will be installed in ./node_modules
- hls.js
-
- hls.js Demo
- Native HLS Playback
- Subtitles
- Media errors
- Problemes / Problems
-
- chrome://media-internals/
error: "Failed to prepare video sample for decode"
error: "Append: stream parsing failed. Data size=131072 append_window_start=0 append_window_end=inf"
pipeline_error: "CHUNK_DEMUXER_ERROR_APPEND_FAILED"- buffer limits
maxBufferLength(default: 30s)maxMaxBufferLength(default: 600s)maxBufferSize(default: 60MB)- info
- activating hls js logs, on browser
console:
{type: "mediaError", parent: "main", details: "bufferFullError", fatal: false}
{type: "mediaError", details: "bufferAppendingError", fatal: false}
- Video ceases after bufferFullErrors and bufferAppendErrors #1084
- Related?
- ...
- Solució / solution
- ...
- buffer limits
[1:1:1005/150254:ERROR:render_media_log.cc(25)] MediaEvent: PIPELINE_ERROR audio renderer: post-decode audio splicing failed- Frag Loop Loading Error
- Windows playback (Matroska)
- Democracy
Player
- urpmi democracy (contrib/backports)
- urpmi pygtk2.0-libglade
- Mplayer
- Getting the best out of MPlayer
- Fine-tuning MPlayer
- setting up MTRR
- mail lists
- Download
- playing YUV
- vesa problem (svgalib)
- mplayer-users: 1, 2, 3, 4, 5, 6
- mplayer-dev-eng: 1
- vesa and tv out
- mdk
- gentoo
- Another trivial fix for vo_vesa
- ioperm: experts exchange
- nagra
- Problems
-
- "Unable to determine our source address: This computer has an invalid IP address: 0x0"
-
- two alternative solutions
-
- edit /etc/hosts
-
- 127.0.0.1 localhost localhost
192.168.1.5 pctoto
- 127.0.0.1 localhost localhost
- open the udp port 15947 of your firewall (useful when using dhcp)
- "Too many buffered pts"
-
- specify: -fps 25
- mplayerxp
- kmplayer
- mplayer plugin
- Ogle DVD player (DVD menus)
- Open Quicktime
- Real Player
- TomTom (GPS navigation)
- Unified Multimedia Service - UMMS (MeeGoTV)
- VideoLAN/VLC(client)
- XANIM (SGI inst version)
- xine
- XMMS (.com)
- XMPS
- Playing DVDs in Mandrake 9.0 (DVDRip)
- PocketPC players
- VJ
- LiVES
- VJ
Software Listings
- VJ Tools: Software of interest to VJ's
- List of VJ software (wp)
- dyne:bolic
- EffecTV
- PIKSEL
-
- Media Centre
- Conversió / Conversion
- Encoders
- Codecs
- Dirac (wavelets)
- DV
- M-JPEG codec (Morgan Multimedia)
- DV vs MJPEG compression
- Multiple description
- Demo MD (polito.it)
- Sintonització
TV / TV Tuner
- xawtv (X11) / fbtv (framebuffer/console)
- kdetv kwintv - QtVision
- tvtime
- AVview
- fstv (svgalib, fbdev or glide)
- Exo TV (ATI AIW)
- Sintonizadoras de TV en Linux
- Configuracion de Sintonizadoras de TV en Linux
- Xifratge / Scrambling
- Linux TV (fr)
- Logoaway
- Zapping
- TV Tool (MS Windows)
- DVB / MPEG-TS
- Teletext
- EPG
- Gravació
àudio/vídeo sobre CD/DVD / Audio/video on CD/DVD burning
- DVD author
- AfterDawn.com
- HowTo create a DVD (Gentoo)
- tosvcd (vdr to svcd transcoder)
- kavi2svcd
- DVB-TS
- Panteltje's Linux DVD software page (multiple a/v)
- Some thoughts on DVD authoring
- Backing up a Movie on DVD
- Creating
a DVD with a menu (MythTV wiki)
- on Gimp: create a PAL image with x-> 720,75dpi / y -> 576,80dpi (pixel aspect ratio)
- High-Resolution VCD/SVCD Stills on the UNIX Command Line
- Realització d'un DVD amb els nostres films (amb subtítols i menús)
- Altres / Other
- Aspect calculator (1-4a.com)
- Zoneminder (CCTV)
- Eines / Tools
- Streaming
- (HTTP) Streaming a video using a program in C/C++: A tutorial on creating your own video on demand streaming server in C/C++ under Linux
- VideoLAN/VLC
vlc --list- VLC
command-line help (
vlc -H) (vlc -p stream_out_standard --advanced) (vlc -p access --advanced) -
- Chapter 3. Advanced streaming using the command line
- Syntax
-
- MRL syntax
-
vlc input_stream --sout '#module1{option1=parameter1{parameter-option1},option2=parameter2}:module2{option1=…,option2=…}:…'vlc input_stream --sout '#standard{access=http{mime=video/mpeg},mux=ts,dst=/toto}'
- general options
-
vlc input_stream --sout-standard-access http --sout-http-mime video/mpeg --sout-standard-mux ts --sout-standard-dst=/toto
- sout
-
- transcode
- standard
-
- access=
-
- http
-
- mime=<mime_type>
- https
- udp
- file
- mmsh
- rtp is deprecated; use sout-rtp instead
- mux=
-
- ts
-
- pid-video=<pid>
- pid-audio=<pid>
- pid-spu=<pid>
- pid-pmt=<pid>
- shaping=<shaping delay in ms>
- use-key-frames
- pcr=<pcr interval im ms>
- dts-delay=<delay in ms>
- crypto-audio
- csa-ck=<key>
- ps
- mpeg1
- ogg
- asf
- asfh
- avi
- mpjpeg
- dst=
- bind
- path
- sap
- name=
- description=
- url=
- email=
- phone=
- duplicate
- smem
- setid
- rtp
-
- dst
- sdp
-
- file://
- http://
- rtsp://
- sap://
- mux
- sap
- name
- cat
- description
- url
- phone
- proto
- port
- port-audio
- port-video
- ttl
- rtcp-mux
- caching
- key
- salt
- mp4a-latm
- rtsp
-
- user
- pwd
- record
- raop
- mosaic
- langfromtelx
- es
- display
- delay
- bridge
- ts
- ps
- mp4
- asf
- Instal·lació / Installation
-
- Mageia
-
urpmi vlc vlc-plugin-lua
- Problems:
-
- qt4 interface error: Unable to load extensions module
-
- Solució / Solution
-
- lua is needed to load the modules
- Mageia
-
urpmi vlc-plugin-lua
- Logs
-
cvlc --extraintf=http:logger --verbose=3 --file-logging --logfile=/tmp/vlc-log.txt
- How to play multiple instances of VLC
- Chapter 4. Examples for advanced use of VLC's stream output (transcoding, multiple streaming, etc...)
-
- TS over HTTP
-
- without transcoding:
-
cvlc -vvv my_input --sout '#standard{access=http{mime=video/mpeg},mux=ts,dst=my_real_ip_address:8888}'cvlc -vvv my_input --sout '#standard{access=http{mime=video/mpeg},mux=ts,dst=/pdw/e3}' [--http-host=my_real_ip_address] --http-port=8888
- Problems:
-
- "no suitable sout mux module for http..."
-
- check that mux_ts is present:
-
- vlc --list | grep mux_ts
-
- mux_ts TS muxer (libdvbpsi)
- VLM - Multiple streaming and Video on demand
-
- VideoLAN Manager is a small media manager designed to control multiple streams with only one instance of VLC.
- Documentation:Streaming HowTo/VLM
- Chapter 5. VLM - Multiple streaming and Video on demand
- telnet
-
- Servidor / Server
-
- Establiu una contrasenya / Setup a password:
-
- Eines / Preferències / Mostra els paràmetres: Tot / Interfície / Interfícies principals / Lua / Telnet Lua:
-
- Contrasenya: xxxx
- o bé establiu-la en engegar el procés / or set it when starting the process
cvlc -I telnet --telnet-password admin
- des de línia d'odres:
-
cvlc -I telnet
- o bé, des de GUI / or, from GUI:
-
- Visualitza / Afegeix una interfície / Telnet
- Client (to configure streams):
-
telnet localhost 4212 (netcat localhost 4212)-
- Add channels:
-
new channel1 broadcast enabledsetup channel1 input sintel.mp4setup channel1 output #standard{access=http{mime=video/mpeg},mux=ts,dst=192.168.0.8:8888/sintel}control channel1 playnew channel2 broadcast enabledsetup channel2 input ed.mp4setup channel2 output #standard{access=http{mime=video/mpeg},mux=ts,dst=192.168.0.8:8888/ed}control channel2 play
- List channels:
-
show
- Remove channel:
-
del channel1
- http server
-
- Servidor / Server
-
cvlc -I http --http-port 8088 --http-password toto
- Client (to configure streams):
-
- http://localhost:8088/vlm.html
-
- username: - / password: toto
- Send command batch:
-
new channel1 broadcast enabled
setup channel1 input sintel.mp4
setup channel1 output #standard{access=http{mime=video/mpeg},mux=ts,dst=192.168.0.8:8888/sintel}
control channel1 play
new channel2 broadcast enabled
setup channel2 input ed.mp4
setup channel2 output #standard{access=http{mime=video/mpeg},mux=ts,dst=192.168.0.8:8888/ed}
control channel2 play
- Client (to play streams):
- Problemes / Problems:
-
- "access_avio access error: Module aready in use"
-
- VLM not able to broadcast more then one RTMP source simultan
- #8268 VLM can't play more then one RTMP input source
- Solució / Solution:
-
- use recent version of vlc: >=2.1.2
-
- però és incompatible amb
ffmpeg-2.2.2: el vlc fa un "
Segmentation fault: core dumped"
- però és incompatible amb
ffmpeg-2.2.2: el vlc fa un "
- Chapter 9. Advanced use of VLC's stream output (transcoding, multiple streaming, etc...)
- DVBlast (live streaming)
- VLMa (broadcast)
- Compilació / Compilation
- MPEG-DASH plugin
- UPnP with VLC
- Desentrellaçat / Deinterlacing
-
- Deinterlacing (videolan wiki)
- Get Started--and Get Streaming--With VLC Media Player
- developers
- nightly builds
- ftp
- freehd (H264 MBAFF)
- Transcode (Wiki)
- PocketPC
- Streaming for the iPhone
- The Mozilla plugin (HTML code example)
- i18n
-
- VLC - Trans (Transifex)
- streamripper / KStreamRipper
- Fenice LS3
- Icecast / Icecast2 (Ogg Vorbis)
- LIVE555 Media Server (LIVE555 Streaming Media libraries)
- MIMD
- Network-Integrated Multimedia Middleware (NMM)
- RTP
- Adobe
- Darwin
streaming server (Apple) (*)
- QuickTime Streaming Server Administrator's guide (PDF) (qtss_admin_guide.pdf)
- Download (macosforge)
- How to setup Darwin Streaming Server on Windows
- HOWTO to set-up Apple's Darwin Streaming Server under Linux
- Darwin Streaming Server 6.0.3 on Linux
- Darwin Streaming Server on Ubuntu
- Implementación de un servidor de streaming de vídeo adaptativo (PFM de la UPC)
- Please explain new DSS 5.0 features (broadcasting, reflector)
- Mandriva
urpmi darwinstreamingserver-utils(QTBroadcaster)-
urpmi darwinstreamingserver darwinstreamingserver-webadmin (2008.1: Contrib Testing)-
dss-setup- proposed username: dssadmin
- /etc/dss/streamingserver.xml: /etd... -> /etc...
- chown dss.dss -R /var/lib/dss/Playlists
service darwinstreamingserver startservice streamingadminserver start
-
-
from source Mandriva dependencies urpmi make gcc gcc-c++
install groupadd qtss
adduser -M -g qtss qtss
...urpmi darwinstreamingserver-utilsdarwinstreamingserver darwinstreamingserver-webadminmovies path /usr/local/movies//var/lib/dss/Movies/SDP path /var/streaming/playlists//var/lib/dss/Playlists/post-install setup open ports: 554/tcp 1220/tcp dss-setup
open ports: 554/tcp 1220/tcpserver start /usr/local/sbin/streamingadminserver.plservice darwinstreamingserver startservice streamingadminserver startplay open port: 15947/udp (to avoid "invalid IP address: 0x0")
VOD: vlc rtsp://127.0.0.1/sample_h264_100kbit.mp4- Playing playlist:
- create a playlist called
playlist_name and start it {vlc,mplayer} rtsp://server_ip_address[:554]/playlist_name[.sdp]
- create a playlist called
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- server admin:
- open port 1220/tcp
http://[server_ip_address]:1220
- Errors:
- "An error occurred while creating your
playlist."
- solution:
chown dss.dss -R /var/lib/dss/Playlists
- solution:
- "An error occurred while starting or
stopping your playlist."
- solution: don't use Mandriva package; compile it yourself
- "An error occurred while creating your
playlist."
- Darwin
compilation on Mandriva (based on script)
urpmi make gcc gcc-c++#!/bin/bash
groupadd qtss
adduser -M -g qtss qtss
wget http://static.macosforge.org/dss/downloads/DarwinStreamingSrvr6.0.3-Source.tar
tar -xvf DarwinStreamingSrvr6.0.3-Source.tar
mv DarwinStreamingSrvr6.0.3-Source DarwinStreamingSrvr6.0.3-Source.orig
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-6.0.3.patch
patch -p0 < dss-6.0.3.patch
mv DarwinStreamingSrvr6.0.3-Source.orig DarwinStreamingSrvr6.0.3-Source
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-hh-20080728-1.patch
patch -p0 < dss-hh-20080728-1.patch
#need to answer n then y
cd DarwinStreamingSrvr6.0.3-Source
mv Install Install.orig
wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/Install
chmod +x Install
./Buildit
sudo ./Install
- Hinting
- Hinting
with MPEG4IP
mp4info toto.mp4mp4creator -hint=audio_track_id toto.mp4
mp4creator -hint=video_track_id toto.mp4- Problems
- Hinting mp4 files
- File
hinting (MP4Box /
GPAC)
MP4Box -hint toto.mp4
- File unhinting
MP4Box -unhint toto.mp4
- Hinting
with MPEG4IP
- Bento4
-
- Developers
- Included applications:
-
mp4info, mp4dump, mp4edit, mp4extract, mp4encrypt, mp4decrypt, mp4dcfpackager, mp4compact, mp4fragment, mp4split, mp4tag, mp42aac, mp42avc, mp42ts, mp4-dash.py
- Eines Bento4 / Bento4 tools
- Fragmentació / Fragmentation
- Example applications from code:
-
- ...
- DRM
- Download
-
- svn
- src tarballs (sf)
- binaries
- Compilació / Compilation
- Estàndards de xifratge suportats / Supported encryption standards
-
- mp4encrypt
- mp4dcfpackager
-
- CBC, CTR
- MPEG4IP
/ mp4v2 (see
Bento4)
- Instal·lació / Installation
-
- Mageia
-
urpmi libmp4v2-utils(libmp4v2_1)
mp4art, mp4chaps, mp4extract, mp4file, mp4info, mp4subtitle, mp4tags, mp4track, mp4trackdump- Hinting
- Info / Analysis
- mp4live (capture + coding in SP/H.264 + streaming)
- mpeg4iptools for MS Windows (CelticDruid)
- Streaming MPEG-4 with Linux (Linux Journal, 2003)
- Flumotion
(Fluendo)
- Comparativo con Wowza y Flash
- LiveTranscoding (*)
- Flumotion (github)
- play:
- live:
vlc http://server_name:8800/mount_point/ - VoD:
vlc http://server_name:8800/mount_point/toto.ogg
- live:
- GStreamer
- ffserver (ffserver-all) (ffmpeg)
-
- Used by MuMuDVB
- Example Live Feed Setups (Tribler)
- ffmpeg dvb streaming
- HelixMedia
- Helix DNA Server (Helix Community)
- MediaMTX
- MJPG-streamer
- Moovida (Elisa Media Centre)
- NinSuna (Metadata-driven Media Adaptation and Delivery)
-
- NinSuna 2.0
- MediaThe Video4Linux2 API: an introduction
- root/drivers/media/v4l2-core
- Open Broadcaster Software (OBS)
-
- Installation
-
- Install Instructions
- Dependències / Dependencies
-
- v4l2
- SRT: ffmpeg compiled with srt
- Mageia
-
urpmi cmake gcc-c++ lib64curl-devel lib64qt5widgets-devel lib64qt5x11extras-devel lib64qt5svg-devel lib64qt5xml-devel lib64speexdsp-devel lib64xcomposite-devel lib64mbedtls-devel [ffmpeg-devel]urpmi lib64pulseaudio-devel lib64v4l-devel- NOTE: add
ffmpeg-develonly if you are not using compiled ffmpeg
- Passos / Steps
-
git clone https://github.com/obsproject/obs-studio.gitcd obs-studio- latest_version="25.0.8"
- git checkout ${latest_version}
mkdir -p build && cd buildcmake -DUNIX_STRUCTURE=1 ..make -j4sudo make installecho /usr/local/lib >/etc/ld.so.conf.d/local.confsudo ldconfig
- Configuració / Setup
~/.configure/obs-studio/
- Ús / Usage
obs- SRT
- Problemes / Problems
- Flicker on XSHM
- Flickering on Arch Linux with a Screen Capture
- Solució / Solution
- (KDE Plasma) Arranjament del sistema -> Pantalla i monitor -> Compositor -> Prevenció de l'esquinçament («vsync»): Mai
- Flicker on XSHM
- QStream (gscope, db container, SPEG codec)
- Nimble
- ...
- on-the-fly transmuxing to HLS, DASH
- Wowza
-
- Wowza Media Server
- Wowza Streaming Engine (wp)
- WMSPanel
- Info
- Howto
-
- General
- Adaptive bit-rate
- Edge
-
- How to configure a live stream repeater (origin/edge)
- Load balancer
-
- How to get Dynamic Load Balancing AddOn
-
- WowzaDynamicLoadBalancingAddOn_UsersGuide.pdf
- http://load_balancer:1935/loadbalancerInfo
- Llicència / License
- Seguretat / Security
- AWS S3
- Installation
-
- Downloads
- CentOS
-
yum install java-openjdkwget http://www.wowza.com/downloads/WowzaStreamingEngine-4-1-2/WowzaStreamingEngine-4.1.2.rpm.binchmod +x WowzaStreamingEngine-4.1.2.rpm.binsudo ./WowzaStreamingEngine-4.1.2.rpm.bin- verify:
-
netstat -anp | grep java
- Install location:
/usr/local/WowzaStreamingEngine
- Llicència / License
-
- Developers
- Licensing requirements for Wowza Transcoder
- Load balancer
-
- development license allows only 10 minutes of load balancer
- Installation
-
/usr/local/WowzaStreamingEngine/conf/Server.license
- Start/Stop/Status
-
systemctl start WowzaStreamingEngine.servicesystemctl status WowzaStreamingEngine.servicesystemctl stop WowzaStreamingEngine.service
- Start manually
-
cd /usr/local/WowzaStreamingEngine/bin
./startup.shcd /usr/local/WowzaStreamingEngine/manager/bin
./startmgr.sh
- http://localhost:8088/enginemanager
- API REST
-
- Cal una llicència específica (o de desenvolupament) / An extra license is needed (or a development one)
- Wowza Streaming Engine REST API
-
- Server
- edit conf/Server.xml as documented:
<Root>
<Server>
<RESTInterface>
...
<IPWhiteList>*</IPWhiteList>
<DocumentationServerEnable>true</DocumentationServerEnable>
<DocumentationServerAuthenticationMethod>none</DocumentationServerAuthenticationMethod>
<Property>
<Name>restUserHTTPHeaders</Name>
<Value>Access-Control-Allow-Origin:*|Access-Control-Allow-Methods:OPTIONS,GET,PUT,DELETE,POST</Value>
</Property>
- Client (can point to another server)
- mkdir -p /usr/local/WowzaStreamingEngine/api
- cd /usr/local/WowzaStreamingEngine/api
- wget http://www.wowza.com/downloads/forums/restapidocumentation/RESTAPIDocumentationWebpage.zip
- unzip /usr/local/WowzaStreamingEngine/api/RESTAPIDocumentationWebpage.zip
- browse to file: file:///usr/local/WowzaStreamingEngine/api/index.html
- http://<server_address>:8089/api-docs
- "Explore button" (Enter key does not work)
- Config files
-
- Configuration reference (pdf)
- Usage
- Cloud
-
- Wowza Streaming Engine for Rackspace Cloud: Quick Start Guide
- OpenStack
-
- Security group (WowzaMediaServerForEC2_UsersGuide.pdf)
-
nova secgroup-create sg-wowza 'Wowza Streaming Engine'
# ICMP (ping, traceroute)
nova secgroup-add-rule sg-wowza icmp -1 -1 0.0.0.0/0
# RTP, MPEG-TS
nova secgroup-add-rule sg-wowza udp 1 65535 0.0.0.0/0
# FTP
nova secgroup-add-rule sg-wowza tcp 21 21 0.0.0.0/0
# SSH
nova secgroup-add-rule sg-wowza tcp 22 22 0.0.0.0/0
# HTTP
nova secgroup-add-rule sg-wowza tcp 80 80 0.0.0.0/0
# HTTPS, RTMPS
nova secgroup-add-rule sg-wowza tcp 443 443 0.0.0.0/0
# RTSP
nova secgroup-add-rule sg-wowza tcp 554 554 0.0.0.0/0
# RTMP
nova secgroup-add-rule sg-wowza tcp 1935 1935 0.0.0.0/0
# JMX Interface
nova secgroup-add-rule sg-wowza tcp 8084 8085 0.0.0.0/0
# Wowza Streaming Manager
nova secgroup-add-rule sg-wowza tcp 8086 8086 0.0.0.0/0
# REST API
nova secgroup-add-rule sg-wowza tcp 8087 8089 0.0.0.0/0
- AWS EC2
-
- Wowza Streaming Engine for Amazon EC2 User’s Guide (pdf)
- Wowza Streaming Engine 4 for Amazon EC2: Startup Packages
-
- Configuration reference
- AMI
- User data
-
WZA_startupPackageURL=[url-to-startup-package],
WZA_wowzaServerLicenseKey=[license-key]|[license-key]
ssh -i ~/.ssh/keys/pair_wowza.pem ec2-user@x.x.x.x-
/usr/local/WowzaStreamingEngine/sudo service WowzaStreamingEngineManager statussudo service WowzaStreamingEngine status
- Palantir (i386, PPC, MIPS, ARM)
- GPAC
- applications/testapps/mp4_streamer/
- HTTP streaming with GPAC
- Programari HTTP streaming / HTTP streaming software
-
- Servidor / Server
-
- DASH Encoder (github) (uni-klu)
- libi2dash (i2cat)
- Dash.encrypt Segmenter (castLabs) (Java)
-
- inputs are several mp4 files (several representations)
- DRM Today (*) (cloud DRM service): Widevine, PlayReady, Adobe Access, Marlin, OMA
- dashencrypt (github)
- Bento4
-
mp4fragmentermp4-dash.py
- EBU Test engine for encoding (github)
- Microsoft Azure
- HTTP streaming with GPAC
- Nimble
- Wowza
- Nginx-based nginx-vod-module
(Kaltura)
- VOD (On-the-fly repackaging of MP4 files to
DASH, HDS, HLS, MSS)
- Multi URL structure (comma separated)
- progressive download
- Compilació / Compilation
- Info
- Problemes / Problems
- Config
-
specification json (mapped) media content nginx conf (sample configs) urls - local files:
- /disc/videos/
- toto.mp4
- bbb/
- bbb_320p.mp4
- bbb_720p.mp4
- bbb_1080p.mp4
- ccc/
- ccc_320p.mp4
- ccc_720p.mp4
- ccc_cat.srt
server {
# vod settings
vod_mode local;
vod_last_modified 'Sun, 19 Nov 2000 08:52:00 GMT';
vod_last_modified_types *;
# vod caches
vod_metadata_cache metadata_cache 512m;
vod_response_cache response_cache 128m;
# gzip manifests
gzip on;
gzip_types application/vnd.apple.mpegurl;
# file handle caching / aio
open_file_cache max=1000 inactive=5m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
#aio on;
location /videos/ {
# will prepend:
root /disc/;
vod hls;
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
add_header Access-Control-Allow-Origin '*';
expires 100d;
}
}
- http://localhost/videos/toto.mp4/index.m3u8
- http://localhost/videos/bbb/bbb_,320,720,1080,p.mp4.urlset/master.m3u8
- http://localhost/videos/ccc/ccc_,320p.mp4,720p.mp4,lang/cat/cat.str,.urlset/master.m3u8
local file:
- /etc/nginx/json/bbb.json
{
"sequences": [
{
"clips": [
{
"type": "source",
"path": "/disc/videos/bbb/bbb_720p.mp4"
}
]
},
{
"clips": [
{
"type": "source",
"path": "/disc/videos/bbb/bbb_1080p.mp4"
}
]
}
]
}
local files:
- /disc/videos/bbb/
- bbb_720p.mp4
- bbb_1080p.mp4
server {
# vod mode
vod_mode mapped;
vod_last_modified 'Sun, 19 Nov 2000 08:52:00 GMT';
vod_last_modified_types *;
# vod caches
vod_metadata_cache metadata_cache 512m;
vod_response_cache response_cache 128m;
vod_mapping_cache mapping_cache 5m;
# gzip manifests
gzip on;
gzip_types application/vnd.apple.mpegurl;
# file handle caching
open_file_cache max=1000 inactive=5m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
location ^~ /videos/ {
# will replace:
alias /etc/nginx/json/;
vod hls;
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
add_header Access-Control-Allow-Origin '*';
expires 100d;
}
}
- http://localhost/videos/bbb.json/master.m3u8
- remote content:
-
# https://github.com/kaltura/nginx-vod-module/blob/master/conf/vod-remote-nginx.conf.template
upstream media {
# step 3: redirected by proxy_pass in /media/proxy
#server @MEDIA_HOST@;
server commondatastorage.googleapis.com;
keepalive 32;
}
server {
# vod remote settings
vod_mode remote;
# redirect step 1 to step 2
vod_upstream_location /media_proxy;
# internal location for vod subrequests
location ~ /media_proxy/[^/]+/(.*) {# step 2: internal point from step 1,
# as instructed by vod_upstream_location
internal;
proxy_pass http://media/$1;
proxy_http_version 1.1;
#proxy_set_header Host @MEDIA_HOST@;
proxy_set_header Host commondatastorage.googleapis.com;
proxy_set_header Connection "";
}
# serve flavor HLS
location /hls/ {
# step 1: request arrives here
vod hls;
vod_bootstrap_segment_durations 2000;
vod_bootstrap_segment_durations 2000;
vod_bootstrap_segment_durations 2000;
vod_bootstrap_segment_durations 4000;
#include @NGINX_CONF_PATH@/cors.conf;
}
} - ...
- http://localhost/hls/gtv-videos-bucket/sample/BigBuckBunny.mp4/master.m3u8
- ...
local file:
- /usr/share/nginx/html/test.json
{
"sequences": [
{
"clips": [
{
"type": "source",
"path": "/http/commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
}
]
}
]
}
remote content:
upstream jsonupstream {
# step 3: redirected by proxy_pass in /json/hls1/
server localhost:80;
}
server {
# vod settings
vod_mode mapped;
# redirect step 1 to step 2
vod_upstream_location /json2;
vod_remote_upstream_location /proxy;
vod_upstream_extra_args "pathOnly=1";
vod_last_modified 'Sun, 19 Nov 2000 08:52:00 GMT';
vod_last_modified_types *;
# vod caches
vod_metadata_cache metadata_cache 512m;
vod_response_cache response_cache 128m;
vod_mapping_cache mapping_cache 5m;
# gzip manifests
gzip on;
gzip_types application/vnd.apple.mpegurl;
# file handle caching / aio
open_file_cache max=1000 inactive=5m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
#aio on;
location ^~ /json2/hls1/ {
# step 2: internal point from step 1,
# as instructed by vod_upstream_location
internal;
# redirect to step 3
proxy_pass http://jsonupstream/;
proxy_set_header Host $http_host;
}
location ~ /proxy/([^/]+)/(.*) {
internal;
proxy_pass $1://$2;
resolver 8.8.8.8;
}
location ~ ^/hls1/ {
# step 1: request arrives here
vod hls;
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
add_header Access-Control-Allow-Origin '*';
expires 100d;
}
}
- http://localhost/hls1/test.json/master.m3u8
remote:
- http://jsonserver:80/test.json
- with same content as above
remote content:
- http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
upstream jsonupstream {
# step 3: redirected by proxy_pass in /json/hls/
server jsonserver:80;
}
[same as above]- http://localhost/hls1/test.json/master.m3u8
XML status
# vod status page
location /vod_status {
vod_status;
access_log off;
}- http://localhost/vod_status
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- /disc/videos/
- URL
structure
- ...
exemple http://<domain>
http://localhost /<location>
/videos Basic: /<fileuri>
/toto.mp4 Multi: /<prefix>,<middle1>,<middle2>,<middle3>,<postfix>.urlset
/toto_,6,9,15,00k.mp4.urlset Mapped, remote: /<fileuri>?<extraargs>
/<url_path_params>/clipFrom/<value>
/clipFrom/10000 /clipTo/<value>
/clipTo/60000 /tracks/v<id1>-v<id2>-a<id1>-a<id2>...
/tracks/v1-a1 /shift/v<vshift>-a<ashift>-s<sshift>
/shift/v100 /<filename><basename>[<seqparams>][<fileparams>][<trackparams>][<langparams>].<extension>basename + extension- dash:
manifest.mpd - hds:.
manifest.f4m - hls master playlist
(multivariant):
master.m3u8 - hls media playlist
(monovariant):
index.m3u8 - mss:
manifest - thumb:
thumb-<offset>[<resizeparams>].jpg - volume_map:
volume_map.csv
/index.m3u8
seqparams/master-sseq1.m3u8
fileparams/manifest-f1.mpd
trackparams/manifest-a1.f4m
langparams/master-leng.m3u8
resizeparams/thumb-1000-w150-h100.jpg Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- dash:
- ...
- Directives
-
base - vod
- vod_mode
- vod_status
segmentation - vod_segment_duration
- vod_live_window_duration
- vod_force_playlist_type_vod
- vod_force_continuous_timestamps
- vod_bootstrap_segment_durations
- vod_align_segments_to_key_frames
- vod_segment_count_policy
- vod_manifest_duration_policy
- vod_manifest_segment_durations_mode
- vod_media_set_override_json
upstream - vod_upstream_location
- vod_remote_upstream_location
- vod_max_upstream_headers_size
- vod_upstream_extra_args
- vod_media_set_map_uri
- vod_path_response_postfix
- vod_max_mapping_response_size
fallback - vod_fallback_upstream_location
- vod_proxy_header_name
- vod_proxy_header_value
performance - vod_metadata_cache
- vod_mapping_cache
- vod_live_mapping_cache
- vod_response_cache
- vod_live_response_cache
- vod_initial_read_size
- vod_max_metadata_size
- vod_max_frames_size
- vod_max_frame_count
- vod_segment_max_frame_count
- vod_cache_buffer_size
- vod_cache_buffer_size 1m;
- vod_open_file_thread_pool
- vod_output_buffer_pool
- vod_performance_counters
url structure - vod_base_url
- vod_segments_base_url
- vod_multi_uri_suffix (.urlset)
- vod_clip_to_param_name (clipTo)
- vod_clip_from_param_name (clipFrom)
- vod_tracks_param_name (tracks)
- vod_time_shift_param_name (shift)
- vod_speed_param_name (speed)
- vod_lang_param_name (lang)
- vod_force_sequence_index (off)
response headers - vod_expires
- vod_expires_live
- vod_expires_live_time_dependent
- vod_last_modified
- vod_last_modified_types
ad stiching
(mapped mode only)- vod_dynamic_mapping_cache
- vod_dynamic_clip_map_uri
- vod_source_clip_map_uri
- vod_redirect_segments_url
- vod_apply_dynamic_mapping
- vod_notification_uri
DRM / encryption - vod_secret_key
- vod_encryption_iv_seed
- vod_drm_enabled
- vod_drm_single_key
- vod_drm_clear_lead_segment_count
- vod_drm_max_info_length
- vod_drm_upstream_location
- vod_drm_info_cache
- vod_drm_request_uri
- vod_min_single_nalu_per_frame_segment
DASH - vod_dash_absolute_manifest_urls (on)
- vod_dash_manifest_file_name_prefix (manifest)[.mpd]
- vod_dash_profiles (urn:mpeg:dash:profile:isoff-main:2011)
- vod_dash_init_file_name_prefix (init)[.mp4]
- vod_dash_fragment_file_name_prefix (frag)[.m4s]
- vod_dash_manifest_format (segmenttimeline)
- vod_dash_subtitle_format (webvtt)
- vod_dash_init_mp4_pssh (on)
- vod_dash_duplicate_bitrate_threshold
- vod_dash_use_base_url_tag
HDS - ...
HLS - vod_hls_encryption_method
- vod_hls_force_unmuxed_segments (EXT-X-MEDIA)
- # multilanguage
vod_hls_force_unmuxed_segments on; - vod_hls_container_format (auto)
- vod_hls_absolute_master_urls (on)
- vod_hls_absolute_index_urls (on)
- vod_hls_absolute_iframe_urls
- vod_hls_output_iframes_playlist
- vod_hls_master_file_name_prefix (master)[.m3u8]
- vod_hls_index_file_name_prefix (index)[.m3u8]
- vod_hls_iframes_file_name_prefix (iframes)[.m3u8]
- vod_hls_segment_file_name_prefix (seg)[.ts]
- vod_hls_init_file_name_prefix (init)
- vod_hls_encryption_key_file_name (encryption.key)
- vod_hls_encryption_key_uri
- vod_hls_encryption_key_format
- vod_hls_encryption_key_format_versions
- vod_hls_mpegts_interleave_frames (off)
- vod_hls_mpegts_align_frames (on)
- vod_hls_mpegts_output_id3_timestamps (off)
- vod_hls_mpegts_id3_data ({"timestamp":$vod_segment_time,"sequenceId":"$vod_sequence_id"})
- vod_hls_mpegts_align_pts (off)
- vod_hls_encryption_output_iv (off)
MSS - ...
thumbnail capture - vod_thumb_file_name_prefix (thumb)[.jpg]
- vod_thumb_accurate_positioning (on)
- vod_gop_look_behind (10000)
- vod_gop_look_ahead (1000)
volume map - vod_volume_map_file_name_prefix (volume_map)[.csv]
- vod_volume_map_interval (1000)
misc - vod_ignore_edit_list
- vod_parse_hdlr_name
- vod_parse_udta_name
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- Nginx
variables
-
$vod_suburi $vod_filepath $vod_set_id $vod_sequence_id $vod_clip_id $vod_notification_id $vod_dynamic_mapping $vod_request_params $vod_status $vod_segment_time $vod_segment_duration $vod_frames_bytes_read Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- Multi audio
- How to all audios as EXT-X-MEDIA in HLS #840
-
http://192.168.18.90/videos/multi_,360,720,p.mp4.urlset/master.m3u8 # default
vod_hls_force_unmuxed_segments off;
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=419074,RESOLUTION=640x360,FRAME-RATE=25.000,CODECS="avc1.64001e,mp4a.40.2"
http://192.168.18.90/videos/multi_360p.mp4/index-v1-a1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1740993,RESOLUTION=1280x720,FRAME-RATE=25.000,CODECS="avc1.64001f,mp4a.40.2"
http://192.168.18.90/videos/multi_720p.mp4/index-v1-a1.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=8184,RESOLUTION=640x360,CODECS="avc1.64001e",URI="http://192.168.18.90/videos/multi_360p.mp4/iframes-v1-a1.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=20857,RESOLUTION=1280x720,CODECS="avc1.64001f",URI="http://192.168.18.90/videos/multi_720p.mp4/iframes-v1-a1.m3u8"vod_hls_force_unmuxed_segments on;#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio0",NAME="default",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="http://192.168.18.90/videos/multi_360p.mp4/index-a1.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=419074,RESOLUTION=640x360,FRAME-RATE=25.000,CODECS="avc1.64001e,mp4a.40.2",AUDIO="audio0"
http://192.168.18.90/videos/multi_360p.mp4/index-v1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1740993,RESOLUTION=1280x720,FRAME-RATE=25.000,CODECS="avc1.64001f,mp4a.40.2",AUDIO="audio0"
http://192.168.18.90/videos/multi_720p.mp4/index-v1.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=8184,RESOLUTION=640x360,CODECS="avc1.64001e",URI="http://192.168.18.90/videos/multi_360p.mp4/iframes-v1.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=20857,RESOLUTION=1280x720,CODECS="avc1.64001f",URI="http://192.168.18.90/videos/multi_720p.mp4/iframes-v1.m3u8"
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio0",NAME="Català",LANGUAGE="ca",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="http://192.168.18.90/videos/multilang_360p.mp4/index-a1.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio0",NAME="English",LANGUAGE="en",AUTOSELECT=NO,DEFAULT=NO,CHANNELS="2",URI="http://192.168.18.90/videos/multilang_360p.mp4/index-a2.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=869261,RESOLUTION=640x360,FRAME-RATE=25.000,CODECS="avc1.64001e,mp4a.40.2",AUDIO="audio0"
http://192.168.18.90/videos/multilang_360p.mp4/index-v1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1671753,RESOLUTION=1280x720,FRAME-RATE=25.000,CODECS="avc1.64001f,mp4a.40.2",AUDIO="audio0"
http://192.168.18.90/videos/multilang_720p.mp4/index-v1.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=7203,RESOLUTION=640x360,CODECS="avc1.64001e",URI="http://192.168.18.90/videos/multilang_360p.mp4/iframes-v1.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=14164,RESOLUTION=1280x720,CODECS="avc1.64001f",URI="http://192.168.18.90/videos/multilang_720p.mp4/iframes-v1.m3u8"
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- server
- vod_hls_force_unmuxed_segments on;
- client
- ffplay http://192.168.18.90/videos/multi_,360,720,p.mp4.urlset/master.m3u8
- Subtítols / Subtitles
- http://localhost/videos/ccc/ccc_,320p.mp4,720p.mp4,lang/cat/ca.str,.urlset/master.m3u8
- if subtitles file is not in English,
you must specify the language with
infix: lang/<3-letter-lang-code>
- subtitles in mp4 #974
- ...
- ...
-
- VOD (On-the-fly repackaging of MP4 files to
DASH, HDS, HLS, MSS)
- NGINX-based Media Streaming Server (nginx-rtmp-module)
-
- RTMP module for nginx
- Compilació / Compilation
- Problemes / Problems
-
- Gstreamer to nginx-rtmp-module
- second
publish event just before unpublish #789
- Problems when streaming from Wirecast, that triggers a publish event with empty name, just before the publish_done. This causes scripts in exec_publish_done to be called with an empty $name variable.
- Pull request from bbc/nginx-rtmp-module : Fixed missing name for done notifications #1305
- Video error 100/0 when streaming from ArutCam #954
recv() failed (104: Connection reset by peer)- Sincronització
àudio/vídeo / Audio/video synchronisation
- Problemes a l'entrada
- Solució / Solution
# wait for video (solves sync issues with audio)
wait_video on;
wait_key on;
- Solució / Solution
- Problemes a l'entrada
- Live
streaming config
- RTMP
-
- nginx.conf
-
rtmp {
server {
listen 1935;
ping 30s;
notify_method get;
application app-live {
live on;
# drop a publisher if inactive during 10s.
# NOTE: if you are using an RTMP load balancer (e.g. on AWS),
# its timeout must have the same value as here
drop_idle_publisher 10s;
# wait for video (solves sync issues with audio)
wait_video on;
wait_key on;
# allow recursive kill of processes using trap on TERM
exec_kill_signal term;
respawn off;
# exec debug# sudo chown nginx.nginx /var/log/nginx
exec_push /usr/local/bin/exec.sh exec_push $app $name >>/var/log/nginx/exec.log;
exec_publish /usr/local/bin/exec.sh exec_publish $app $name >>/var/log/nginx/exec.log;
exec_publish_done /usr/local/bin/exec.sh exec_publish_done $app $name >>/var/log/nginx/exec.log;
}
}
}- #
nginx
debug
error_log /var/log/nginx/error.log info; #error_log /var/log/nginx/error.log debug; http {
server {
...
#rtmp statistics
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# e.g. /home/myuser/src/nginx/nginx-rtmp-module;
root /path/to/parent/dir/of/stat/xsl/file;
}
}
}
- HLS
-
- Is there any option for HLS re-streaming on Nginx-rtmp module like rtmp edge server ? #668
- Cache TS but not m3u8 (see also cache on CloudFront):
-
- nginx.conf
-
# as no Cache-Control is added, if this is the origin for CloudFront, CloudFront will cache these files
location ~* \.(ts|trp)$ {
root /tmp;
add_header 'X-Hls-Cache-Status' 'Cached TS';
add_header 'Access-Control-Allow-Origin' '*' always;
types {
video/mp2t ts;
}
}
# big cache (1 day) for index.m3u8
location ~* index.m3u8$ {
root /tmp;add_header 'X-Hls-Cache-Status' 'Cached m3u8';
add_header 'Access-Control-Allow-Origin' '*' always;types {expires 1d;
application/vnd.apple.mpegurl m3u8;
}
# OPTIONS (section needed? see below)
}
# small cache (2 seconds) for other m3u8 files
location ~* \.m3u8$ {
root /tmp;add_header 'X-Hls-Cache-Status' 'Almost fresh m3u8';
add_header 'Access-Control-Allow-Origin' '*' always;expires 2s;types {
application/vnd.apple.mpegurl m3u8;
}}
# OPTIONS (section needed? see below)# do not cache m3u8 files
location /hls {
root /tmp;
add_header 'X-Hls-Cache-Status' 'Fresh content';
add_header Cache-Control no-cache;
add_header 'Access-Control-Allow-Origin' '*' always;
types {
application/vnd.apple.mpegurl m3u8;
}
# OPTIONS
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' 'Authorization,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
#
# Tell client that this pre-flight info is valid for 20 days
#
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
}
- MPEG-DASH
- VOD config
- MP4
location ~* \.(mp4)$ {
root /tmp;
add_header 'Access-Control-Allow-Origin' '*' always;
if ($arg_download = 'true') {
add_header Content-Disposition 'attachment; filename="$arg_filename"';
}
types {
video/mp4 mp4;
}
}
- MP4
- Debug
- Nginx rtmp logs
- comportament / behaviour (estàndard RTMP / RTMP
standard)
- Opció 1: sense
drop_idle_publisherffmpeg ... -f flv rtmp://myserver/myapp/mystream- quan el servidor rep el flux,
genera els senyals:
- push
- publish
- estat al servidor: publishing
- si fem CTRL-Z a l'ffmpeg, no passa res al servidor. Continua publishing i la connexió es manté
- reprenem (fg) l'ffmpeg. Cap canvi al servidor
- aturem (CTRL-C) l'ffmpeg. Al
servidor, la connexió es tanca i
genera el senyal:
- publish_done
- Opció 2: amb
drop_idle_publisher10s;- ffmpeg ... -f flv rtmp://myserver/myapp/mystream
- quan el servidor rep el flux,
genera els senyals:
- push
- publish
- estat al servidor: publishing
- si fem CTRL-Z a l'ffmpeg, al
servidor, al cap de 10s (valor
especificat amb
drop_idle_publisher), la connexió es
tanca i genera el senyal:
- publish_done
- si reprenem (fg) l'ffmpeg, ens
apareixen aquests errors, i no pot
continuar:
av_interleaved_write_frame(): Operation not permitted
Error writing trailer of rtmp://myserver/myapp/mystream: Operation not permitted
Conversion failed!
- Opció 1: sense
- RTMP on tshark / Wireshark
- exec
- /usr/local/bin/exec.sh (exec_push.sh,
exec_publish.sh, exec_publish_done.sh)
#!/bin/bashevent=$1
app=$2
name=$3
echo $(date '+%Y-%m-%dT%H:%M:%S.%06NZ' --utc) [${event}] ${app} ${name}
exit 0#!/bin/bash
event=$1
app=$2
name=$3
is_publishing=$(curl -X GET "http://127.0.0.1/publishing?app=${app}&name=${name}")
echo $(date '+%Y-%m-%dT%H:%M:%S.%06NZ' --utc) [${event}] ${app} ${name} ${is_publishing}
exit 0- !/bin/bash
event=$1
app=$2
name=$3
addr=$4
flashver=$5
swfurl=$6
tcurl=$7
pageurl=$8is_publishing=$(curl -X GET "http://127.0.0.1/publishing?app=${app}&name=${name}")
echo $(date '+%Y-%m-%dT%H:%M:%S.%06NZ' --utc) [${event}] app=${app} name=${name} addr=is_publishing=${is_publishing}${addr} flasver=${flashver} swfurl=${swfurl} tcurl=${tcurl} pageurl=${pageurl}
if [[ ${event} =~ "publish"$ ]]
then
if [[ ${is_publishing} = "true" ]]
then
echo "publish and publishing"
else
echo "publish and not publishing"
fi
fi
if [[ ${event} =~ "publish_done"$ ]]
then
if [[ ${is_publishing} = "true" ]]
then
echo "publish_done but still publishing -> this publish_done is not mine: abort exec"
else
echo "publish_done and not publishing -> proceed with exec"
fi
fi
exit 0
- my_app.conf
application my_app {
live on;
# drop a publisher if inactive (connected but not sending content) during this time
drop_idle_publisher 10s;
# wait for video (solves sync issues with audio)
wait_video on;
wait_key on;
# allow recursive kill of processes using trap on TERM
exec_kill_signal term;
respawn off;
# exec to debug
exec_push /usr/local/bin/exec.sh exec_push $app $name $addr $flashver $swfurl $tcurl $pageurl >>/var/log/nginx/exec.log;
exec_publish /usr/local/bin/exec.sh exec_publish $app $name$addr $flashver $swfurl $tcurl $pageurl>>/var/log/nginx/exec.log;
exec_publish_done /usr/local/bin/exec.sh exec_publish_done $app $name$addr $flashver $swfurl $tcurl $pageurl>>/var/log/nginx/exec.log;
}
- /usr/local/bin/exec.sh (exec_push.sh,
exec_publish.sh, exec_publish_done.sh)
- Nginx logs
- Estàndard RTMP / RTMP
standard
- tail -n 2000 -f /var/log/nginx/error.log | grep -E "connect:|disconnect|Stream|drop|publish:|play:"
-
client: 192.168.1.135 server: 192.168.1.138 exec_publish /usr/local/bin/exec_publish.sh exec /usr/local/bin/exec_push.sh
exec_push /usr/local/bin/exec_push.shexec_publish_done /usr/local/bin/exec_publish_done.sh - ffmpeg -re -i sintel.mp4 -c copy -f flv rtmp://192.168.1.138/my_app/sintel
- [info] client connected '192.168.1.135'
- [info] connect: app='my_app' args='' flashver='' swf_url='' tc_url='rtmp://192.168.1.138/my_app' page_url='' acodecs=0 vcodecs=0 object_encoding=0, client: 192.168.1.135, server: 0.0.0.0:1935
- [info] createStream, client: 192.168.1.135, server: 0.0.0.0:1935
- [info] publish: name='sintel' args='' type=live silent=0, client: 192.168.1.135, server: 0.0.0.0:1935
- [info] exec: starting unmanaged child '/usr/local/bin/exec_publish.sh', client: 192.168.1.135, server: 0.0.0.0:1935
- [notice] signal 17 (SIGCHLD) received
- [notice] unknown process 5886 exited with code 0
- [info] epoll_wait() failed (4: Interrupted system call)
- [info] exec: starting managed child '/usr/local/bin/exec_push.sh', client: 192.168.1.135, server: 0.0.0.0:1935
- [notice] signal 17 (SIGCHLD) received
- [notice] unknown process 4563 exited with code 0
- [info] exec: child 4563 exited; respawning, client: 192.168.1.135, server: 0.0.0.0:1935
- [info] exec: terminating child 4563, client: 192.168.1.135, server: 0.0.0.0:1935
- ...
- [debug] RTMP recv video (9) csid=4 timestamp=1166 mlen=7514 msid=1 nbufs=59
- [debug] RTMP recv audio (8) csid=4 timestamp=1171 mlen=172 msid=1 nbufs=2
- [debug] RTMP recv audio (8) csid=4 timestamp=1192 mlen=172 msid=1 nbufs=2
- [debug] RTMP recv video (9) csid=4 timestamp=1208 mlen=12101 msid=1 nbufs=95
- [debug] RTMP recv audio (8) csid=4 timestamp=1214 mlen=180 msid=1 nbufs=2
- [debug] RTMP recv audio (8) csid=4 timestamp=1235 mlen=176 msid=1 nbufs=2
- ...
- CTRL-C on ffmpeg
- end of streamed file
- [debug] AMF read (11) 46 43 55 6E 70 75 62 6C 69 73 68 'FCUnpublish'
- [debug] AMF read (12) 64 65 6C 65 74 65 53 74 72 65 61 6D 'deleteStream'
- [info] deleteStream, client: 192.168.1.135, server: 0.0.0.0:1935
- [debug] AMF write (15) 53 74 6F 70 20 70 75 62 6C 69 73 68 69 6E 67 'Stop publishing'
- [info] exec: starting unmanaged child '/usr/local/bin/exec_publish_done.sh', client: 192.168.1.135, server: 0.0.0.0:1935
- [info] disconnect, client: 192.168.1.135, server: 0.0.0.0:1935
- [info] deleteStream, client: 192.168.1.135, server: 0.0.0.0:1935
- [notice] signal 17 (SIGCHLD) received
- [notice] unknown process 7048 exited with code 0
- [info] epoll_wait() failed (4: Interrupted system call)
- after CTRL-Z on ffmpeg + drop_idle_publisher seconds
- [error] live: drop idle publisher, client: 192.168.1.135, server: 0.0.0.0:1935
- [info] disconnect, client: 192.168.1.135, server: 0.0.0.0:1935
- [info] deleteStream, client: 192.168.1.135, server: 0.0.0.0:1935
- [debug] AMF write (15) 53 74 6F 70 20 70 75 62 6C 69 73 68 69 6E 67 'Stop publishing'
- [info] exec: starting unmanaged child '/usr/local/bin/exec_publish_done.sh', client: 192.168.1.135, server: 0.0.0.0:1935
- [notice] signal 17 (SIGCHLD) received
- [notice] unknown process 7163 exited with code 0
- [info] epoll_wait() failed (4: Interrupted system call)
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Estàndard RTMP / RTMP
standard
- ...
- on
- ...
- Problemes / Problems
nginx: [emerg] invalid port in url https://...- Secure links in nginx-rtmp
- on_publish
url does not support https
callback it ? #1186
- rtmp_auth_key.lua
- authentication
example?
- location /onpublish_auth
- ...
- exec
-
-
Exec when produced by exec_static nginx is started
exec_options
exec_kill_signal
respawn
respawn_timeout
exec_publish connection open
exec_push
exec? a publisher starts sending content
exec_pull a relay is consuming the stream
exec_play a player starts consuming the stream
exec_play_done a player stops consuming the stream
exec_publish_done connection closed - CTRL-C ffmpeg
- after time specified by drop_idle_publisher, if content is not received
exec_record_done
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- One common exec issue (PATH preservation)
-
# keep $PATH
env PATH;
- debug
-
- IMPORTANT: no space between ">>" and log filename
-
exec /path/to/my_script.sh >>/var/log/nginx/exec/exec.log 2>&1;
- su -c 'su -s /bin/bash nginx' (sudo -u nginx -s)
-
- (type root password)
- /path/to/my_script.sh
- /tmp and chroot
-
- if specified in nginx.service:
[Service] PrivateTmp=true, nginx service uses a /tmp directory different from system-wide /tmp: -
/tmp/systemd-private-...-nginx.service-.../tmp/...
- if specified in nginx.service:
- Exec wrapper in bash (to avoid non terminated processes, e.g. ffmpeg)
-
- trap
- ...conf
-
application myapp {
live on;
exec /var/scripts/exec_wrapper.sh $name;
exec_kill_signal term;
}
- /var/scripts/exec_wrapper.sh
-
#!/bin/bash
on_die ()
{
# kill all children
#pkill -KILL -P $$
# terminate ffmpeg gently (so as it can close its output, e.g. m3u8)
kill -INT $ffmpeg_pid
}
trap'on_die' TERM
ffmpeg -i rtmp://localhost/myapp/$1 -c copy -f flv rtmp://localhost/myapp2/$1 &
ffmpeg_pid=$!
# wait for ffmpeg
wait $ffmpeg_pid
-
- Statistics
-
- similar to statistics in:
- Configuració / Setup
- see also nginx modular setup
- conf file
# rtmp stats
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /path/to/parent/dir/of/stat/xsl/file;
}
- http://localhost:8080/stat
- Getting number of subscribers
- Escalabilitat / Scalability
- transcoding: ffmpeg (exec_push)
- recording thumbnails
-
- Screenshots of live stream
- time format takes timezone from /etc/localtime
- one single flv video file that will contain only keyframes. Playing the resulting file will show the frames at the correct time. Note that ffplay/ffmpeg don't like ":" in filename.
-
recorder case1 {
record keyframes;
record_unique off;
record_path /tmp/case1;
record_suffix _%Y-%m-%dT%H:%M:%S%z.flv;
}
- different thumbnails created from keyframes. When no keyframe is available during the interval (2s), generated flv file is empty. If more than one keyframe is found during the period, all of them will be put in the resulting flv file
-
recorder case2 {
record keyframes;
record_unique off;
record_path /tmp/case2;
record_suffix _%Y-%m-%dT%H%M%S%z.flv;
record_interval 2s;
}
- different thumbnails created from frame (even if not a key frame). Each flv will contain only one frame. After creation of flv file, it will be converted to jpeg.
-
recorder case3 {
record video;
record_unique off;
record_path /tmp/case3;
record_suffix _%Y-%m-%dT%H%M%S%z.flv;
record_interval 2s;
record_max_frames 1;
exec_record_done ffmpeg -y -i $path $dirname/$basename.jpeg;
}
- different approach: no recorded used; ffmpeg does all job (one jpeg thumbnail every 10s):
-
exec_push ffmpeg -i rtmp://localhost:1935/$app/$name-r 1/10 $name_%06d.jpeg;- Warning: ffmpeg may miss the first keyframe
- Wiki
-
- Getting started with nginx rtmp
- Directives
- Getting number of subscribers
-
- Compile nginx with option --with-http_xslt_module
- Estructura / Structure:
- rtmp
- nginx_version
- nginx_rtmp_version
- compiler
- built
- pid
- uptime
- naccepted
- bw_in
- bytes_in
- bw_out
- bytes_out
- server
- application
- name
- live
- stream
- name
- time
- bytes_in
- bw_out
- bytes_out
- bw_audio
- bw_video
- client
- id
- address
- time
- dropped
- avsync
- timestamp
- publishing
- active
- client
- ...
- stream
- ...
- stream
- application
- ...
- application
- rtmp
- Whether
a stream is receiving a publisher
- publishing.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" media-type="text/plain"/>
<xsl:param name="app"/>
<xsl:param name="name"/>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="//application[name=$app]/live/stream[name=$name]/client[publishing and active]">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
- .conf
location /publishing {
proxy_pass http://127.0.0.1/stat;
xslt_stylesheet /usr/share/nginx/html/publishing.xsl app='$arg_app' name='$arg_name';
}
- Usage
http://.../publishing?app=...&name=...- xmlstarlet
tr publishing.xsl
-s app=my_app -s name=my_namestats.xml
- publishing.xsl
- Other information from stats, using XSLT (e.g. given the name of the application, return a plain text with several lines, each line containing: stream_name, video_width, video_height):
-
- /var/www/stat_streams.xslt
-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" media-type="text/plain"/>
<xsl:param name="app"/>
<xsl:template match="/">
<xsl:apply-templates select="//application[name=$app]"/>
</xsl:template>
<xsl:template match="application">
<xsl:for-each select="live/stream">
<xsl:value-of select="name"/>
<xsl:text> </xsl:text>
<xsl:value-of select="meta/video/width"/>
<xsl:text> </xsl:text>
<xsl:value-of select="meta/video/height"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
- /etc/nginx/conf.d/stat_streams.conf
-
location /stat_streams {
proxy_pass http://127.0.0.1/stat;
xslt_stylesheet /var/www/stat_streams.xslt app='$arg_app';
}
- Usage
-
http://.../stat_streams?app=...- xmlstarlet
tr stat_streams.xslt
-s app=my_appstats.xml
- Control
module
-
syntax
args
info
Record http://server.com/control/record/start|stop?
srv=SRV&app=APP&name=NAME&rec=REC
Drop
http://server.com/control/drop/publisher|subscriber|client?
srv=SRV&app=APP&name=NAME&addr=ADDR&clientid=CLIENTID
Redirect
http://server.com/control/redirect/publisher|subscriber|client?
srv=SRV&app=APP&name=NAME&addr=ADDR&clientid=CLIENTID&newname=NEWNAME
- publisher: publishing
- subscriber: playing
- client: publishing, playing
- given an app, change stream name for a publisher or a subscriber -> affects connection
- publisher o subscriber can be identified by: name, clientid or address
- Redirecting streams in version 1.1.1
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Parameters:
- SRV: optional server{} block number within rtmp{} block, default to first server{} block
- APP: application name
- NAME: stream name
- REC: optional recorder name, defaults to root (unnamed) recorder
- ADDR: optional client address (the same as returned by rtmp_stat)
- CLIENTID: optional nginx client id (displayed in log and stat)
- NEWNAME: new stream name to redirect to
-
- Record
-
- Directives
-
record(Directives)-
- record_path has to be created manually
exec_record_done
- Control module
- Relay
- Relay
(directives)
pull rtmp://source_server/source_app/source_stream name=local_dst_stream_namepush rtmp://dst_server/dst_app/dst_stream name=local_source_stream_name
- Forward live broadcast service (Examples)
- Redirecting
streams in version 1.1.1
- Control module: Redirect
- Static pull feature in nginx-rtmp
- nginx-rtmp-backup
- Relay
(directives)
- MPEG-DASH in nginx-rtmp-module: live video in the browser without flesh
- Client:
- WebM DASH
- HTTP streaming with GPAC
-
- Documentació / Documentation
-
- MPEG-DASH Content Generation with MP4Box and x264 (Bitmovin)
- Overhead and performance of low latency live streaming using MPEG-DASH (pdf)
- DASH support in MP4Box . Not up to date; use the following command instead:
-
MP4Box -h dash
- DASH features in GPAC players
- Visualization of some options in MP4Box -dash (Dec 2012) (arash@work)
- Obsolete documents
-
- DASH streaming support (Feb 2012) (obsolete)
-
- DASH basics: MPD and segments
- ISO Base Media File Format
- MPEG-2 TS
- Multiple representations
- Osmo4 Playback
- Some guidelines
- MP4Box: fragmentation, segmentation, splitting and interleaving (Feb 2011) (obsolete) (MP4 fragmentation with MP4Box)
- Old documents
-
- Sourceforge GPAC help forum:
- DASH Demonstration @ MPEG-95 (Cyril Concolato) (document MPEG2010/M19439)
- GPAC on iPad for Digital Radio Services (YouTube video)
- HbbTV
- OnDemand
- Live
-
- MP4Box (exemples / examples)
-
- Open bugs:
- Exemples / Examples:
-
MP4Box -dash-live 10000 -segment-name '%s_$RepresentationID$_$Number$' sintel_trailer-720p.mp4- similar to output generated by DashCast: (-dash-live implies -rap)
-
MP4Box -dash-live 10000 -url-template -segment-name '$RepresentationID$_$Number$_gpac' -out mp4box.mpd ../sintel_trailer-720p.mp4#audio:id="a1" ../sintel_trailer-720p.mp4#video:id="v1"
MP4Box -dash-ctx dash-live.txt -dash 10000 -rap -no-frags-default -bs-switching no -mpd-refresh 10 -min-buffer 30000 -url-template -time-shift 1800 -segment-name 'live_$RepresentationID$_' -out live -dynamic toto_rep1.mp4#id=1 toto_rep2.mp4#id=2- several representations
-dash-live=F-
- Osmo4 Linux tutorial (2012-11-26) (page 2)
- Help with Dash streaming (2012-12-21)
- Utilització / Usage
-
- HbbTV
-
- for HbbTV compliance (according to HbbTV 1.5 Annex B)
-
MP4Box -profile live ...
- DASH AVC/264 / dash.js
-
- svn r4990
MP4Box -profile dashavc264:live ...- Problem playing MPEG DASH streams on DASH IF reference player
-
- ISO BMFF Byte Stream Format
-
- Only SAP types 1 and 2: "closed GOP random access point" (defined in ISO/IEC 14496-12:2012 Annex I)
- Solució / Solution:
-
MP4Box -dash 2000 -frag 2000 -frag-rap [-rap] ...
- Dash.js 1.1 compatibility
- mp4box segmented files stop playback (26 Sep 2014) (24fps; real duration: 1m:07s:11f -> 67500ms)
-
-
mpd
player
MP4Box -dash 5000 ... video.mp4
segment duration number of segments MP4Client dash.js
Period SegmentList
- -
PT0H1M7.50S 120000 14 1:07:11 - -segment-name '%s_r$RepresentationID$_n$Number$_t$Time$' -
PT0H1M7.50S 120000 14 1:07:11 MEDIA_ERR_DECODE: 3 - -rap - PT0H1M7.50S 96000 20 1:07:11 - -segment-name '%s_r$RepresentationID$_n$Number$_t$Time$' -rap - PT0H1M7.50S 96000 20 1:07:11 0:53:14 (only 16 segments)
Index for time 0 is 0
...
Index for time 60 is 15 (?)-segment-name '%s_r$RepresentationID$_n$Number$_t$Time$' -rap -frag-rap PT0H1M7.50S 96000 20 1:07:11 0:53:14 (only 16 segments)
Index for time 0 is 0
...
Index for time 60 is 15- - -profile live
(implies: -segment-name "%s_dash" -rap -url-template)PT0H1M7.50S 96000 20 0:57:16 (only 17 segments)
0:57:16 (only 17 segments)
Index for time 60 is 15
Index for time 64 is 16-segment-name '%s_dash' -rap -url-template PT0H1M7.50S 96000 20 0:57:16 (only 17 segments)
-segment-name '%s_dash' - -profile dashavc264:live
(implies -rap -url-template)
(but not: -segment-name '%s_dash')
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- conclusions:
-
- dash.js necessita "-rap -segment-name ..." (i també -url-template, segons la recomanació, però el reproductor també el reprodueix [falten segments finals])
- bug a MP4Box fa que duration del segment sigui la durada del primer segment i no la mitjana
-
- si no hi ha url-template i hi ha la llista de segments: MP4Client ho fa bé
- si hi ha url-template, el càlcul de quins segments són necessaris es fa a partir de duration (del primer segment) i el temps total del periode. Això fa que cregui que necessita menys segments dels que realment necessita => no demana els segments finals
- solució:
-
- generació:
-
- MP4Box -dash 5000 -segment-name '%s_r$RepresentationID$_n$Number$' -profile dashavc264:live DashTest_5600.mp4
-
- millor, perquè
incorpora:
profiles="urn:mpeg:dash:profile:isoff-live:2011, http://dashif.org/guildelines/dash264" - no cal
especificar:
-rap -url-template
- millor, perquè
incorpora:
- MP4Box -dash 5000 -segment-name '%s_r$RepresentationID$_n$Number$' -rap -url-template DashTest_5600.mp4
- modificació de l'mpd per a posar duration=average_duration
-
- DashCast usage (live support)
-
- Open bugs
- Test sequences:
- Utilització / Usage
-
- AAC audio
-
- DashCast with AAC audio output (libav-9.8) (cescp)
DashCast -av sintel/sintel-1024-stereo.mp4 -live-media -seg-dur 10000 -time-shift -1 -conf dashcast_aac_24.conf -ast-offset 5000-
- dashcast_aac_24.conf
-
[v1]
type=video
bitrate=800000
framerate=24
width=512
height=218
crop_x=0
crop_y=0
codec=libx264
[a1]
type=audio
bitrate=192000
samplerate=48000
channels=2
codec=aac
- HbbTV 1.5 DashCast code modifications
-
- mpd:
-
- availabilityStartTime should change on every mpd generation (required by some old implementations on certain TV). If it doesn't, the first segment will always be fetched instead of the right one.
-
DashCast -dynamic-ast ...
- SegmentTemplate (required by some TV?)
-
$Time$- (not implemented in svn)
- SegmentTimeLine (required by some TV)
-
- two segments indicated, to avoid the TV getting frozen:
-
<S t="..." d="..." />
<S t="..." d="..." />
- video:
-
- sps/pps on init mp4 (solved on revision 4726: avc1)
- avc1 instead of avc3 (solved on revision 4726: avc1)
- audio:
- Other issues:
-
- mpeg2video
-
- DashCast not working correctly with mpeg2video sources
- Solution
-
- latest versions of gpac (rev 4989) and ffmpeg (2.1.2) work fine
- TS over UDP
- added options:
-
-mpd-refresh(minimumUpdatePeriod)-base-url
- General unifying of the .mpd schemes
-
minimumUpdatePeriod: needed when using templates? corrigendumpublishTime: amendment
- options
-
- -npts (for RTSP streaming)
- Parameters:
MPD
MP4Box DashCast
-logs ...
segment duration (ms) -dash 10000
-
-dash-live 10000
-seg-dur 10000
fragment duration (ms) -frag
-frag-dur 5000 startWithSAP="1"gop alignment in segments -rap
-
gop alignment in fragments (needed by dash.js) -frag-rap
-
-url-template
-segment-name ...
- %s (input file name)
- $RepresentationID$, $ID$
- $Number$
-
- $Number%05d$
- $Time$
-
- $Time%020d$
- $Bandwidth$
-
- $Bandwidth%010d$
- $Init=VALUE$
-
- default: $Init=init$
- $Index=VALUE$
-
inband carriage of video parameter sets (avc3, hev1) (default if option is not specified) -bs-switching inband -
bitstream switching mode not used no
generate initialization segments compatible with each representation
in the adaptation set by merging video parameter sets in a single cinfig,
if possible. If not possible, defaults to nomerge
forces inband mode when a single input is used single
generate a single init segment with multiple sample description entries for each track
(required by HbbTV)multi
output dir
-out output
generated mpd name (toto.mpd) -out toto
-mpd toto.mpd availabilityStartTime updated at every mpd generation
-dynamic-ast offset -ast-offset 1
-ast-offset 1000 TimeShiftBufferDepth
-time-shift 10
-time-shift 10 minBufferTime
-min-buffer 1000
-min-buffer 1.0
Gradual Decoder Refresh
-gdr SegmentTimeLine
-segment-timeline
BaseURL
-base-url
-base-url minimumUpdatePeriod
-mpd-refresh 10
-mpd-refresh 10
-npts Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- avc3 (iso6 brand)
-
output Apple approach
MPEG/3GPP/OIPF approach m3u8 MPEG-2 TS
(segmented)mpd MP4
(segmented)input MPEG-2 TS over UDP udptsseg- - file MP4Box -dash...- MP4 file MP42TS -prog=file.mp4 -rate=4000 -real-time -dst-file=file.ts
MP4Box -dash 10000 -frags-per-sidx 5 -segment-name output_seg -rap
file.mp4
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Examples / Exemples
-
- Generation of representations with ffmpeg
- Limitation: MP4Box accepts only mp4 and ts local files as inputs (urls are not valid)
- one single output file (
input_dashinit.mp4, a concatenation of init and all the segments) with byte pointer references (mediaRange, indexRange), without rap alignment (startWithSAP="0"): -
MP4Box -dash 4000 -frag 500 input.mp4
- several (
-segment-name) output files with a given mpd file name (-out), aligned to rap images (-rap -> startWithSAP="1"): -
MP4Box -dash 4000 -frag 500 -rap -out nom_fitxer_mpd -segment-name nom_segment_ input.mp4
-
# output files command options mpd 1 (dashinit)
<BaseURL>input_dashinit.mp4</BaseURL>
<SegmentList timescale="1000" duration="9576">
<Initialization range="0-1283"/>
<SegmentURL mediaRange="1284-484737" indexRange="1284-1388"/>
<SegmentURL mediaRange="484738-856492" indexRange="484738-484890"/>
...
</SegmentList>1 (init) +
n (segments)-segment-name nom_segment_<SegmentList timescale="1000" duration="9576">
<Initialization sourceURL="nom_segment_init.mp4"/>
<SegmentURL media="nom_segment_1.m4s"/>
<SegmentURL media="nom_segment_2.m4s"/>
...
</SegmentList>-segment-name '%s_$RepresentationID$_$Number$'
(%s is the name of the input file)
-segment-name '%s_$RepresentationID$_$Time$'
(%s is the name of the input file)
-url-template-segment-name nom_segment_<SegmentTemplate timescale="1000" duration="9576" media="nom_segment_$Number$.m4s" startNumber="1" initialization="nom_segment_init.mp4"/>
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
profile command option other options automatically activated
live
-url-templateon demand
-single-segment Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- MPD: Adaptation sets,
representations, init files, from AV files (mp4
files where generated as described in: generation
of representations with ffmpeg):
MP4Box -dash 5000 -frag 5000 -rap -frag-rap ... segments MPD info sintel_trailer_640x360_500k.mp4 - audio/video
-
- sintel_trailer_640x360_500k_dashinit.mp4
<Period duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="24" par="16:9">
<ContentComponent id="1" contentType="video" />
<ContentComponent id="2" contentType="audio" />
<Representation id="1" mimeType="video/mp4" codecs="avc1.64001e,mp4a.40.2" width="640" height="360" frameRate="24" sar="1:1" audioSamplingRate="48000" startWithSAP="1" bandwidth="562881">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
<BaseURL>sintel_trailer_640x360_500k_dashinit.mp4</BaseURL>
<SegmentList timescale="1000" duration="4000">
<Initialization range="0-1622"/>
<SegmentURL mediaRange="1623-470516" indexRange="1623-1666"/>
<SegmentURL mediaRange="470517-751949" indexRange="470517-470560"/>
...
<SegmentURL mediaRange="3570178-3673389" indexRange="3570178-3570221"/>
</SegmentList>
</Representation>
</AdaptationSet>
</Period>
- dash.js does not work
-segment-name toto_ sintel_trailer_640x360_500k.mp4 - audio/video
-
- toto_init.mp4
- toto_1.m4s
- toto_2.m4s
- ...
<Period id="" duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="24" par="16:9">
<ContentComponent id="1" contentType="video" lang="und"/>
<ContentComponent id="2" contentType="audio" lang="und"/>
<Representation id="1" mimeType="video/mp4" codecs="avc1.64001e,mp4a.40.2" width="640" height="360" frameRate="24" sar="1:1" audioSamplingRate="48000" s
tartWithSAP="1" bandwidth="560713">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
<SegmentList timescale="1000" duration="4096">
<Initialization sourceURL="toto_init.mp4"/>
<SegmentURL media="toto_1.m4s"/>
<SegmentURL media="toto_2.m4s"/>
...
</SegmentList>
</Representation>
</AdaptationSet>
</Period>single AdaptationSet, with AV segments -segment-name 'toto_r$RepresentationID$_n$Number$' sintel_trailer_640x360_500k.mp4 - audio/video
-
- toto_r1_n.mp4
- toto_r1_n1.m4s
- toto_r1_n2.m4s
- ...
<Period id="" duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="24" par="16:9">
<ContentComponent id="1" contentType="video" lang="und"/>
<ContentComponent id="2" contentType="audio" lang="und"/>
<Representation id="1" mimeType="video/mp4" codecs="avc1.64001e,mp4a.40.2" width="640" height="360" frameRate="24" sar="1:1" audioSamplingRate="48000" s
tartWithSAP="1" bandwidth="560713">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
<SegmentList timescale="1000" duration="4096">
<Initialization sourceURL="toto_r1_n.mp4"/>
<SegmentURL media="toto_r1_n1.m4s"/>
<SegmentURL media="toto_r1_n2.m4s"/>
...
</SegmentList>
</Representation>
</AdaptationSet>
</Period>
-url-template -segment-name 'toto_r$RepresentationID$_n$Number$' sintel_trailer_640x360_500k.mp4 - audio/video
-
- toto_r1_n.mp4
- toto_r1_n1.m4s
- toto_r1_n2.m4s
- ...
<Period id="" duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="24" par="16:9">
<ContentComponent id="1" contentType="video" lang="und"/>
<ContentComponent id="2" contentType="audio" lang="und"/>
<SegmentTemplate timescale="1000" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="4096" initialization="toto_r$RepresentationID
$_n.mp4"/>
<Representation id="1" mimeType="video/mp4" codecs="avc1.64001e,mp4a.40.2" width="640" height="360" frameRate="24" sar="1:1" audioSamplingRate="48000" s
tartWithSAP="1" bandwidth="560713">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
</Period>
-url-template -segment-name 'toto_r$RepresentationID$_n$Number$' sintel_trailer_640x360_500k.mp4#audio sintel_trailer_640x360_500k.mp4#video - audio
-
- toto_r1_n.mp4
- toto_r1_n1.m4s
- toto_r1_n2.m4s
- ...
- video
-
- toto_r2_n.mp4
- toto_r2_n1.m4s
- toto_r2_n2.m4s
- ...
<Period id="" duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true">
<SegmentTemplate timescale="48000" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="239615" initialization="toto_r$Representatio
nID$_n.mp4"/>
<Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" startWithSAP="1" bandwidth="128778">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="24" par="16:9">
<SegmentTemplate timescale="12288" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="49152" initialization="toto_r$Representation
ID$_n.mp4"/>
<Representation id="2" mimeType="video/mp4" codecs="avc1.64001e" width="640" height="360" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="432815">
</Representation>
</AdaptationSet>
</Period>
separated adaptationsets, but representation id is 1 for audio and 2 for video -url-template -segment-name 'toto_r$RepresentationID$_n$Number$' sintel_trailer_640x360_500k.mp4#audio:id='a1' sintel_trailer_640x360_500k.mp4#video:id='v1' - audio
-
- toto_ra1_n.mp4
- toto_ra1_n1.m4s
- toto_ra1_n2.m4s
- ...
- video
-
- toto_rv1_n.mp4
- toto_rv1_n1.m4s
- toto_rv1_n2.m4s
- ...
<Period id="" duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true">
<SegmentTemplate timescale="48000" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="239615" initialization="toto_r$Representatio
nID$_n.mp4"/>
<Representation id="a1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" startWithSAP="1" bandwidth="128778">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="24" par="16:9">
<SegmentTemplate timescale="12288" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="49152" initialization="toto_r$Representation
ID$_n.mp4"/>
<Representation id="v1" mimeType="video/mp4" codecs="avc1.64001e" width="640" height="360" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="432815">
</Representation>
</AdaptationSet>
</Period>
-url-template -segment-name 'toto_r$RepresentationID$_n$Number$' sintel_trailer_640x360_500k.mp4#audio:id='a1' sintel_trailer_640x360_500k.mp4#video:id='v1' sintel_trailer_1280x720_1500k.mp4#video:id='v2' - audio
-
- toto_ra1_n.mp4
- toto_ra1_n1.m4s
- toto_ra1_n2.m4s
- ...
- video
-
- sintel_trailer_640x360_500k_dash_set2_init.mp4
- toto_rv1_n1.m4s
- toto_rv1_n2.m4s
- ...
- toto_rv2_n1.m4s
- toto_rv2_n2.m4s
- ...
<Period id="" duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true">
<SegmentTemplate timescale="48000" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="239615" initialization="toto_r$Representatio
nID$_n.mp4"/>
<Representation id="a1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" startWithSAP="1" bandwidth="128778">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" bitstreamSwitching="true" maxWidth="1280" maxHeight="720" maxFrameRate="24" par="16:9">
<SegmentTemplate timescale="12288" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="49152" initialization="sintel_trailer_640x36
0_500k_dash_set2_init.mp4"/>
<Representation id="v1" mimeType="video/mp4" codecs="avc3.64001e" width="640" height="360" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="432757">
</Representation>
<Representation id="v2" mimeType="video/mp4" codecs="avc3.64001e" width="1280" height="720" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="1276459
">
</Representation>
</AdaptationSet>
</Period>
- one adaptationset for audio, another one for video
- (as bs-switching is not specified, it defaults to "inband") => one single init for all video representations (PPS/SPS will be on segment files: avc3)
-segment-name 'toto_r$RepresentationID$_n$Number$' -bs-switching merge sintel_trailer_640x360_500k.mp4#audio:id='a1' sintel_trailer_640x360_500k.mp4#video:id='v1' sintel_trailer_1280x720_1500k.mp4#video:id='v2' - audio
-
- toto_ra1_n.mp4
- toto_ra1_n1.m4s
- toto_ra1_n2.m4s
- ...
- video
-
- toto_rv1_n.mp4
- toto_rv1_n1.m4s
- toto_rv1_n2.m4s
- ...
- toto_rv2_n.mp4
- toto_rv2_n1.m4s
- toto_rv2_n2.m4s
- ...
<Period id="" duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true">
<SegmentTemplate timescale="48000" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="239615" initialization="toto_r$Representatio
nID$_n.mp4"/>
<Representation id="a1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" startWithSAP="1" bandwidth="128778">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="24" par="16:9">
<SegmentTemplate timescale="12288" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="49152" initialization="toto_r$Representation
ID$_n.mp4"/>
<Representation id="v1" mimeType="video/mp4" codecs="avc1.64001e" width="640" height="360" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="432593">
</Representation>
<Representation id="v2" mimeType="video/mp4" codecs="avc1.64001f" width="1280" height="720" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="1276295
">
</Representation>
</AdaptationSet>
</Period>
- no bitstreamSwitching
- one different init for every video representation: PPS/SPS are on init files (avc1)
-segment-name 'toto_r$RepresentationID$_n$Number$' -bs-switching no sintel_trailer_640x360_500k.mp4#audio:id='a1' sintel_trailer_640x360_500k.mp4#video:id='v1' sintel_trailer_1280x720_1500k.mp4#video:id='v2' - audio
-
- toto_ra1_n.mp4
- toto_ra1_n1.m4s
- toto_ra1_n2.m4s
- ...
- video
-
- toto_rv1_n.mp4
- toto_rv1_n1.m4s
- toto_rv1_n2.m4s
- ...
- toto_rv2_n.mp4
- toto_rv2_n1.m4s
- toto_rv2_n2.m4s
- ...
<Period id="" duration="PT0H0M52.21S">
<AdaptationSet segmentAlignment="true">
<SegmentTemplate timescale="48000" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="239615" initialization="toto_r$RepresentationID$_n.mp4"/>
<Representation id="a1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" startWithSAP="1" bandwidth="128778">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="24" par="16:9">
<SegmentTemplate timescale="12288" media="toto_r$RepresentationID$_n$Number$.m4s" startNumber="1" duration="49152" initialization="toto_r$RepresentationID$_n.mp4"/>
<Representation id="v1" mimeType="video/mp4" codecs="avc1.64001e" width="640" height="360" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="432593">
</Representation>
<Representation id="v2" mimeType="video/mp4" codecs="avc1.64001f" width="1280" height="720" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="1276295">
</Representation>
</AdaptationSet>
</Period>
- same mpd and same segment file structure as the one obtained with -bs-switching merge
- differences?
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- conversió m3u8 (HLS) a mpd (DASH) / conversion from m3u8 (HLS) to mpd (DASH):
-
MP4Box -mpd test.mpd [-url-template] [http://...]myfile.m3u8
- a single mpd file from multiple representations
- Some guidelines
-
- x264: --sps-id option
-
segment duration subsegment duration fragment duration subsegments per segment command
-dash (calculated) -frag -subsegs-per-sidx
default value ->
500
10000 1000 1000
MP4Box -dash 10000 -frag 1000 -rap test.mp4
10000
1000 5 MP4Box -dash 10000 -frag 1000 -rap -segment-name myDash -subsegs-per-sidx 5 -url-template test.mp4
10000
1000
MP4Box -dash 10000 -frag 1000 -rap -single-segment test.mp4
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
063D Vídeo#
- MPEG 3DTV
- DVB 3DTV
- HDMI 3D
- You Tube
- 3D (wp)
- Nvidia 3D Vision
- Wood calls for 3DTV health warning
- The stereo window
- Dubois anaglyph
- Seqüències 3D / 3D Sequences
- Fotos 3D / 3D pictures
- Programari / Software
-
- Useful 3D programs and utilities (stereoscopy.com)
-
creation display platform other
image video image video other flash java linux win mac
Ana Builder x
x
Art of Illusion Anaglyph maker x
Gimp x
x
Stereomerger x
x
x
StereoPhoto Maker x
x
StereoPress x x
x
StereoSplicer x
Fuji Real 3D W1 3D Slide Projector x
x
Stereoscopic applet
x
x
Wiggle
x
x
Bino
x
x
OneEyeStereo
x x
x
Plascolin x
x
x
2 projectors Fuji W3 3D QuickLook plugin
x
x Fuji W3 camera KMovisto
mol
x
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Dubois anaglyph
07DLNA / UPnP#
- UPnP
-
- UPnP Device Architecture version 1.1
- UPnP product scenarios
- Whitepapers
-
- UPnP Technology – The Simple, Seamless Home Network (December 2006)
-
- DLNA
- DLNA (Digital Living Network Alliance)
- Protocols
- Info
-
- Personalized means of interacting with multimedia content (pdf)
-
- 5.2.1 UPnP
- Programari / Software
-
- List of UPnP AV media servers and clients (wp)
- libdlna
- DLNA Open Source Projects
- Resources (Coherence)
- Development
- Utilitats / Utilities
-
- GUPnP
- UPnP Inspector (Coherence)
-
- urpmi upnp-inspector
- djmount (mount AV devices as filesystem)
- SSDP
-
- gssdp
-
- gssdp-device-sniffer
- Python
- A/V Content
-
- Servidor / Server
-
- NAS
- MediaTomb (free UPnP MediaServer)
- Rygel (Gnome media server)
- GeeXboX uShare (free UPnP A/V & DLNA Media Server for Linux)
- PS3 Media Server
-
- PS3 Media Server (blogspot)
- minidlna
- Client
-
- VLC (urpmi vlc-plugin-upnp)
-
- View -> Playlist -> Local Network -> Universal Plug'n'Play
- xbmc
-
- Videos -> Add source -> Browse -> UPnP devices
- GMediaRender
- Sony
-
- DLNA Setup & FAQ
-
- Smartphones and tablets
- Televisions
- Controller
08Resolucions vídeo digital / Digital video resolutions#
| name | h_size | PAL (25ips, 50Hz) | NTSC (30ips, 60Hz) | used by | MPEG-2 level | ||||
|---|---|---|---|---|---|---|---|---|---|
| resolution (active) |
size | aspect | resolution (active) |
size | aspect | ||||
| 7680 x 4320 | SHV | ||||||||
| 1920 | 1920 x 1152 | 1920 x 1080 | 1.77 (16:9) | HDTV (1080i, 1080p) | High | ||||
| 1920 x 1035 | |||||||||
| 1440 | 1440 x 1152 | 1440 x 1080 | High-1440 | ||||||
| 16CIF | 1408 | 1408 × 1152 | 1408 × 960 | ||||||
| 1280 | 1280 x 720 | 1.77 (16:9) | HDTV (720p) | ||||||
| 9CIF | 1056 | 1056 × 864 | 1056 × 720 | ||||||
| 768 | 768 x 576 | 442368 | 1.33 (4:3) | 768 x 480 | 368640 | 1.60 | DV, DivX | ||
| Full CCIR-601, CCIR-601 D1 | 720 | 720 x 576 | 414720 | 1.25 (5:4) | 720 x 480 | 345600 | 1.50 | most DVD | Main |
| CCIR-601 1/1 D1, cropped CCIR-601 D1, D1, 4CIF | 704 | 704 x 576 | 405504 | 1.22 | 704 x 480 | 337920 | 1.46 | some DVD | |
| 640 | 640 x 512 | 327680 | 1.25 (5:4) | 640 x 480 | DivX, (sq.p. NTSC) | ||||
| 544 | 544 x 576 | 313344 | 0.94 | 544 x 480 | (LD) | ||||
| 3/4 D1 | 528 | 528 x 576 | 304128 | 0.92 | 528 x 480 | 253440 | 1.10 | (LD) | |
| 2/3 D1 | 480 | 480 x 576 | 276480 | 0.84 | 480 x 480 | 230400 | 1.00 | SVCD | |
| 1/2 D1, D2 | 352 | 352 x 576 | 202752 | 0.61 | 352 x 480 | 168960 | 0.73 | DVD, CVD, (SVHS) | |
| D3 | 704 x 288 | 202752 | 2.44 | ||||||
| 480 | 480 x 352 | ||||||||
| 480 x 384 | 184320 | 1.25 (5:4) | 480 x 320 | 153600 | 1.50 | DivX | |||
| 400 | 400 x 320 | 128000 | 1.25 (5:4) | DivX | |||||
| 384 | 384 x 288 | 110592 | 1.33 (4:3) | DivX | |||||
| SIF | 360 | 360 x 288 | 360 x 240 | ||||||
| CIF-601, D4, SIF* | 352 | 352 x 288 | 101376 | 1.22 | 352 x 240 | 84480 | 1.26 | VCD, DVD, (VHS) | Low |
| QCIF+ | 176 | 176 x 220 | 176 x 220 | ||||||
| QCIF | 176 x 144 | 176 x 120 | |||||||
| SQCIF | 128 | 128 x 96 | |||||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
* DVB MPEG2: ETSI TS 101 154 Annex A
| 128 | 144 | 176 | 320 | 352 | 360 | 384 | 400 | 480 | 528 | 544 | 640 | 704 | 720 | 768 | 960 | 1056 | 1280 | 1408 | 1440 | 1920 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 80 | 30 (A) | |||||||||||||||||||||||||||||||||||||
| 96 | SQCIF 30 (A) |
|||||||||||||||||||||||||||||||||||||
| 144 | QCIF 15 (A), 30 (B) |
|||||||||||||||||||||||||||||||||||||
| 176 | W-QVGA 15 (B), 30 (C) | |||||||||||||||||||||||||||||||||||||
| 220 | QCIF | |||||||||||||||||||||||||||||||||||||
| 224 | 30 (C) | |||||||||||||||||||||||||||||||||||||
| 240 | QVGA 15 (B), 30 (C) | CIF (a), 24p, 30p, 60p, 30i |
SIF | |||||||||||||||||||||||||||||||||||
| 288 | CIF (a), 25p, 50p, 25i |
SIF | x | D3 (b) | ||||||||||||||||||||||||||||||||||
| 320 | x | x | ||||||||||||||||||||||||||||||||||||
| 352 | x | |||||||||||||||||||||||||||||||||||||
| 360 | nHD | |||||||||||||||||||||||||||||||||||||
| 384 | x | |||||||||||||||||||||||||||||||||||||
| 480 | i | (c), 30p, 24p, 30i | (d), 30p, 24p, 30i | (e) | x, 30p, 24p, 30i | x, 30p, 24p, 30i | 4CIF (f) | CCIR-601
(g)
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
x | |||||||||||||||||||||||||||||
| p | 4CIF |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
||||||||||||||||||||||||||||||||||||
| 576 | i | D2 (c), 25p, 25i | (d), 25p, 25i | (e) | x 25p, 25i | 4CIF (f) | CCIR-601
(g)
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
x | ||||||||||||||||||||||||||||||
| p | D2 | 4CIF |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
|||||||||||||||||||||||||||||||||||
| 720 | i | 9CIF | ||||||||||||||||||||||||||||||||||||
| p |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
|||||||||||||||||||||||||||||||||||
| 864 | 9CIF | |||||||||||||||||||||||||||||||||||||
| 960 | 16CIF | |||||||||||||||||||||||||||||||||||||
| 1035 | x | |||||||||||||||||||||||||||||||||||||
| 1080 | i |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
|||||||||||||||||||||||||||||||||
| p |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil. |
||||||||||||||||||||||||||||||||||
| 1152 | 16CIF | x | x | |||||||||||||||||||||||||||||||||||
| 128 | 176 | 352 | 360 | 384 | 400 | 480 | 528 | 544 | 640 | 704 | 720 | 768 | 960 | 1056 | 1280 | 1408 | 1440 | 1920 | ||||||||||||||||||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- DVB MPEG2
- DVB AVC
- 480i, 576i, 720p, 1080i, 1080p
- Annex B: DVB-IP datacast
- H264/AVC
- VC-1
- low
- main
- high-1440
- high
** 30p = 30 frames/s
Notes:
- a: CIF-601, D4, SIF*
- b: D3
- c: 1/2 D1, D2
- d: 2/3 D1
- e: 3/4 D1
- f: CCIR-601 1/1 D1, cropped CCIR-601 D1, D1, 4CIF
- g: Full CCIR-601, CCIR-601 D1
| ITU-R | SMPTE | EBU 3299 | frames/s | fields/s | lines/frame | samples/line | sampling rate (MHz) | bitrate (Mbps) at 4:2:2 | anamorphic (ARS) | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EHRI | LSDI | luma | chroma | sample aspect ratio | target square active pixels / line | pixel aspect ratio (PAR) | |||||||||||||||||
| active (AL/F) |
total | active (S/AL) |
total (S/TL) |
active | total | luma | chroma (4:2:2) |
8b | 10b | 4:3 | 16:9 | DAR 4:3 |
DAR 16:9 |
||||||||||
| BT 601 | NTSC (480i) |
i30 | 30 | 59.94 | 480 | 525 | 720 | 858 | 360 | 429 | 13,50 | 6,75 | 216 | 270 | 480*4/3 = 640 | 480*16/9 = 853 | 640/704 (10/11) 640/720? () |
853/704 () 853/720? () |
|||||
| PAL (576i) |
i25 | 25 | 50 | 576 | 625 | 720 | 864 | 360 | 432 | 720/576 = 5/4 | 13,50 | 6,75 | 216 | 270 | 576*4/3 = 768 | 576*16/9 = 1024 | 768/704 (12/11) 768/720? (16/15) |
1024/704 (16/11) 1024/720? (64/45) |
|||||
| BT-1543 | 296M S3 | 720 | p60 | 60 | - | 720 | 750 | 1280 | 1980 | 74,25 | 921.6 | ||||||||||||
| S1 | p50 | 50 | - | 0.92G | |||||||||||||||||||
| BT-709 | 1125 | i30 | 30 | 60 | 1035 | 1125 | 74,25 | 37,125 | |||||||||||||||
| BT 709 (>=4) | EHRI-0 | BT-1680 | 274 S6 | S2 | 1080 | i25 | 25 | 50 | 1080 | 1125 | 1920 | 2640 | 74,25 | 1036.8 | |||||||||
| i30 | 30 | 60 | |||||||||||||||||||||
| p24 | 24 | - | |||||||||||||||||||||
| 274 S9 | S3 | p25 | 25 | - | 74,25 | 1036.8 | |||||||||||||||||
| p30 | 30 | 60 | |||||||||||||||||||||
| 274 S3 | S4 | p50 | 50 | - | 148.5 | 2073.6 | |||||||||||||||||
| p60 | 60 | - | |||||||||||||||||||||
| 1250 | i25 | 25 | 50 | 1152 | 1250 | 74,25 | 37,125 | ||||||||||||||||
| BT.2020 | EHRI-1 | BT-1769 | 4k | 2160 | 3840 | ||||||||||||||||||
| EHRI-2 | 3240 | 5760 | |||||||||||||||||||||
| BT.2020 | EHRI-3 | BT-1769 | Super Hi-Vision | 4320 | 7680 | ||||||||||||||||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Display resolution (displays standards comparison)
- 720p (Visual comparison of TV resolutions)
- Home Video Systems Visual Resolution Comparison (Leopold's AV page)
- Digital Consumer Formats
- What are some typical picture sizes and their associated applications? (MPEG2 FAQ)
- Distància de visualització / Viewing distance
- 1080i on 1366x768 resolution problems
- Are You Getting All of the HDTV Resolution You Expected?
- Escalat /Scaling
- 576 x 2 = 1152; 1152 * 2/3 = 768 (1366x768)
- 1158 cropped = 1080; 1080 * 2/3 = 720
- Pixel to pixel
- Cartes d'ajust /
Resolution charts, test cards
- Category:Television test patterns (wikimedia) (some in svg)
- ISO 12233
- Using SFR (Imatest)
- Download ISO resources (i3a)
- SVG, PDF
- Digital Image Scanners
- Video resolution chart (pdf) (Northwestern University)
- efg's Image Processing: Databases & Test Targets
- The Test Card Gallery
- Philips PM5544 (wp)
- BBC test cards
- The television test card (archive.org)
- Video Test Signals
- List of BBC test cards (wp)
- Test Card F (wp)
- Test Card M
- Test Card W (wp)
- Widescreen Test Card Development
- Test Card W (WorldLingo)
- Maximum Test Cardosity from FML
- Programari / Software
- tvTestPattern.c (c-generated raw rgb images converted to mpeg2video)
- tcmaker
- Línies de test / Test lines (VITS )
-
- EBU Tech 3209 "Performance specification of EBU insertion signals equipment"
- CCIR reccomendation 473-1 (1974) "Insertion of special signals in the field-blanking interval of a television signal"
-
- field 1:
-
- CCIR 17
-
- 20T pulse:
-
- f(x) = 0.5*(sin(pi*x/4))^2+0.5*(sin(pi*x/4))^2*sin(2*pi*4.43*x)
- CCIR 18
- field 2:
-
- CCIR 330
- CCIR 331
- EBU Tech 3097 "EBU Time-And-Control Code FOR TELEVISION TAPE-RECORDINGS (625-LINE TELEVISION SYSTEMS)"
- "Insertion of special signals in the field-blanking interval of a television signal". CCIR Report 314-5, XVth Plenary Assembly, Geneva, 1982, Vol. XII.
- Video signal generator (wp)
- "PAL systems. Television measurements" Tektronix TG2000
- Video measurement (Studio setup in broadcasting system)
-
math expression
(amplitude in volts, time in microseconds, frequencies in MHz)YCbCr measure instrumentation
Y Cb Cr
CCIR 17 bar v(t) = 0.7
duration = 10235 128 128 - bar amplitude
- bar tilt
- base line distortion
WFM 2T pulse
(without colour)v(t) = 0.7*(sin(pi*t/0.4))^2
duration = 2T = 0.4f(n) 128 128 - pulse bar ratio
- k-factor (overshoot / undershoot)
20T pulse
(with colour)v(t) = 0.35*(sin(pi*t/4))^2+0.35*(sin(pi*t/4))^2*sin(2*pi*4.43*t + phi)
duration = 20T = 4f(n) b r - luminance / chrominance gain inequality
- luminance / chrominance delay inequality
CCIR 18 multiburst
(without colour)
(f = 0.5, 1.0, 2.0, 4.0, 4.8, 5.8)v(t) = 0.35 + 0,21*sin(2*pi*f*t)
duration_each = 5f(n) 128 128 - amplitude / frequency distortion (frequency reponse)
CCIR 330 constant luminance
(reference)v(t) = 0.7 235 128 128
chrominance over luminance steps
y_offset = 0, 0.14, 0,28, 0,42, 0,56, 0,7
(0%, 20%, 40%, 60%, 80%, 100% of 0,7)v(t) = y_offset + 0.14*sin(2*pi*4.43*t + phi)
duration_each = (10 for the first one), 4 (rest)f(n) b r - DG: differential gain: dL => dS
- DP: differential phase: dL => dp
- chroma filter
CCIR 331 saturation steps on constant luminance
sat = 0.07, 0.21, 0.35v(t) = 0,35 + sat*sin(2*pi*4.43*t + phi) 126
- chrominance to luminance inter-modulation: dS => dL
- low-pass filter
constant saturation on constant luminance
(reference)v(t) = 0,35 + 0,21*sin(2*pi*4.43*t + phi) 126
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 4K
-
- 4K VISION. DVB SCENE. Edition No.33 March 2010.
- Super Hi-Vision (SHV)
-
- Super Hi-VIsion (NHK)
- SHV
- Demonstration of Super Hi-Vision at IBC-2008 - the NHK contribution (EBU) (history of UHDTV)
- Japanese government supports Ultra HD (graphics, distances)
- EBU TECHNICAL REVIEW – 2008 Q2. M. Sugawara. Super Hi-Vision. Research on a future ultra-HDTV system
- EBU TECHNICAL REVIEW – January 2009 1/13 Y. Shishikui, Y. Fujita and K. Kubota. Super Hi-Vision. The Start Of the Show
09Relació d'aspecte / Aspect ratio#
- Relació d'aspecte / Aspect ratio
- Conversió de relació d'aspecte / Aspect ratio conversion
- What is... an Anamorphic image?
- TV buying guide (calculator 4:3 <->16:9)
- Aspect ratios, for fun and profit
- The letterbox and widescreen advocacy page
- Recommended Receiver Reaction to Aspect Ratio Signalling in Digital Video Broadcasting (DTG)
- Tech Tips - Active Format Description (AFD)
- Programari / Software
- Adding Active Format Description during encoding (PixelTools)
- Wikipedia
-
x y res dpi asp res dpi asp PAL 4:3 720 75 54 576 80 51 16:9 45 64 64 45 NTSC 4:3
10 480
11 Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
image res implicit image aspect
(width/height)sar
sample aspect ratio
(calculated)dar
display aspect ratio
(specified)
SD 720 576 5:4 (1,250) 16:15 (1,066) 4:3 (1,333)
64:45 (1,422) 16:9 (1,777) anamorphic HD 1280 720 16:9 (1,777) 1:1 (1,000) 16:9 (1,777)
1920 1080 16:9 (1,777) 1:1 (1,000) 16:9 (1,777)
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Notes:
-
- dar = (w/h) * sar
- sar = (h/w) * dar
- per a trobar l'aspecte de sortida (DAR):
-
- SD en 4:3:
-
- 1,250 * 1,066 = 1,333
- SD en 16:9 anamòrfic:
-
- 1,250 * 1,422 = 1,777
- HD (en 16:9):
-
- 1,777 * 1,0 = 1,777
- el dar està especificat a:
-
- MPEG2 video: sequence header
- ffprobe
-
sar dar ffprobe -select_streams v:0 -show_entires stream sample_aspect_ratio=16:15 display_aspect_ratio=4:3 ffprobe -select_streams v:0 -show_entries frame sample_aspect_ratio=16:15 - Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- ffmpeg
- per a especificar el dar en la sortida:
-
ffmpeg ... -aspect 16:9 ...ffmpeg ... -filter:v 'setdar=dar=16/9' ...
- si no s'especifica el dar:
-
- en la creació: ffmpeg agafarà el mateix dar que el de l'entrada
- (?) en el receptor: es calularà com a dar = amplada/alçada*sar
- per a especificar el sar de la sortida (només servirà per a calcular el dar; si s'especifiquen el dar i el sar, només valdrà l'últim especificat):
-
ffmpeg ... -filter:v 'setsar=sar=16/15' ...-
- calcularà dar=4/3 i això és el que constarà al sequence header
- gstreamer
video/x-raw,framerate=$ratefraction,width=$system_width,height=$system_height,format=BGRA,pixel-aspect-ratio=1/1
- si no s'especifica el sar...
- ITU-R
-
- BT-709-5: "Parameter values for the HDTV standards for production and international programme exchange" (Question ITU-R 27/11)
-
- Annex 1: Segmented frame (PsF)
- Sample aspect ratio (codec)
- source aspect ratio in MPEG-2
video (ITU H.262 / ISO/IEC 13818-2) (explained
in DVB-AVC
TS 101 154: Annex B.3.1)
- display_horizontal_size = ...
- DAR (display aspect ratio) specified in
aspect_ratio_information (DVB-AVC
TS 101 154: 5.1.3)
display aspect_ratio_information (AR)
(sequence header)4:3 0010 16:9 0011 2.21:1 0100 Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- if sequence_display_extension not present:
- source_aspect_ratio = DAR
- if sequence_display_extension is present:
- source_aspect_ratio = DAR x (display_horizontal_size/display_vertical_size) x (vertical_size/horizontal_size)
- ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC:
"The active_format is used by the receiver in conjunction with picture size and shape information as indicated in the "sequence parameter set RBSP" and the aspect_ratio_idc field of the "VUI parameters". In particular, the picture width, picture height, frame cropping information, and sample aspect ratio are important for proper use of active_format. (see ISO/IEC 14496-10)" (DVB-AVC TS 101 154: Annex B.3.2)
- source aspect ratio in MPEG-2
video (ITU H.262 / ISO/IEC 13818-2) (explained
in DVB-AVC
TS 101 154: Annex B.3.1)
- Frame aspect ratio (TV) / AFD
(Active Format Description):
- Info
- Taula AFD / AFD Table
- AFD codes explained
- Active Format Description (Michael Dolan)
- Widescreen AFD and things
- AFD Ready initiative (NAB)
- Using AFD to resolve aspect ratio discrepancy
- Who controls AFD?
- (*)
- DTG UK
- D-Book
- 3.4.2 "Active format description" (taules amb colors)
- 24 "Recommended Receiver Reaction to Aspect Ratio Signalling in Digital Video Broadcasting"
- "Recommended Receiver Reaction to Aspect Ratio Signalling in Digital Video Broadcasting"
- DTG
Testing - Conformance testing
- Test card M
- DTG AFD test suite
- "D-Book Launch" (DVB Scene #30, June 2009) ("AFD test suite" screenshot)
- D-Book
- Abast / Scope
- AR: GOP
- AFD: frame
- stream_content / component type (DVB)
- AFD allows the receiver to
identify the "area of interest" / "The
active
format descriptor (AFD) describes the portion of the 16:9
image which is important and should therefore be presented
to the 4:3 viewer":
digital analogue active format description
(DVB-AVC TS 101 154: Annex B.3)
MPEG-2: active_format (inside afd_data(): 0x000001B2 (user_identifier), 0x44544731 ('DTG1' afd_data)
user data in frame header (*)
AVC: carried in the SEI messagesWSS (ETSI EN 300 294 / ITU-R BT.1119-2)
first 4 bits of 14 bits in line 23code description code (B00-B03) description aspect active lines 0000 0 unknown
0001 1 reserved
0010 2 box 16:9 (top) 0010 letterbox 16:9 top 16:9 430 0011 3 box 14:9 (top) 0100 letterbox 14:9 top 14:9 504 0100 4 box > 16:9 (centre) 1011 letterbox > 16:9 centre
0101-0111 5-7 reserved
1000 8 (0) as coded frame
1001 9 (1) 4:3 (centre) 0001 full format 4:3 4:3 576 1010 10 (2) 16:9 (centre) 1101 letterbox 16:9 centre 16:9 430 1110 full format 16:9 (anamorphic) 16:9 576 1011 11 (3) 14:9 (centre) 1000 letterbox 14:9 centre 14:9 504 1100 12 (4) reserved
1101 13 (5) 4:3 (with shoot & protect 14:9 centre) 0111 full format 4:3 (shoot and protect 14:9) 14:9 576 1110 14 (6) 16:9 (with shoot & protect 14:9 centre)
1111 15 (7) 16:9 (with shoot & protect 4:3 centre)
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Allowed by D-Book "Recommended Receiver Reaction to Aspect Ratio Signalling in Digital Video Broadcasting" (UK)
- Info
- Scart: pin 8
- HDMI AVi IntoFrame
...
10Refresc / Framerates#
- Understanding Video Frame Rates and Screen Refresh Rates (About.com:Home Theater)
- Why
59.94 Hz?
- 59,94 (60 *1000/1001)
- 29,97 (30 *1000/1001)
- 23,976 (24 *1000/1001)
11Entrellaçat / Interlace#
- DVD Benchmark: Part 5 - Progressive Scan DVD
- Desentrellaçat / Deinterlace
-
- What is deinterlacing? The best method to deinterlace movies
- Deinterlace (wp)
- "Deinterlacing - an overview" Gerard de Haan, Erwin B. Bellers (Proceedings of the IEEE, Vol. 86, No. 9, september 1998)
- VLC deinterlacing
- Judder
- judder in HTPC
- xrand (xorg)
- test judder with ffmpeg
- test judder with gst-launch videotestsrc
- Judder (wikipedia)
- Judder Test for Linux (*)
- Why Frame Rate Matters (PC to TV)
- Judder: Qué es y como evitarlo
12Colorimetria / Colorimetry#
- Colorimetria / Colorimetry
- Documents:
-
- colorimetria.ods
- Colour primaries and reference white:
-
- ITU-R BT.1360,
- ITU-R BT.601,
- ITU-R BT.709,
- ITU-R BT.1700 or SMPTE 274M, 170M and 296M-2001
- ITU-R BT.2020
- ITU-R BT.601: "2.6 Colour and opto-electronic transfer characteristic"
-
- reference white:
-
-
625 / 525
x y D65 0.3127 0.3290 Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- primary colours:
-
-
625 525
x y x y R 0.640 0.330 0.630 0.340 G 0.290 0.600 0.310 0.595 B 0.150 0.060 0.155 0.070 Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- EBU primaries: EBU Tech.3213 "EBU standard for chromacity tolerances for studio monitors"
-
- reference white:
-
-
CIE 1931 CIE 1960
x y u v D65 0.313 0.329 0.1978 0.3122 Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- primary colours:
-
-
CIE 1931 CIE 1960
x y u v R 0.64 0.33 0.451 0.349 G 0.29 0.60 0.121 0.374 B 0.15 0.06 0.175 0.105 Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- Gamma
- Chroma
subsampling (wp)
- Chrominance Subsampling in Digital Images (pdf) 4:2:0, 4:2:2, ... 4:x:x explained
- Notació / Notation
- J/a/b
- J (usually 4): width of a 2-row reference block
- a: number of chroma samples in the first row
- b: number of chroma samples in the second row
- J/a/b
- ●: Y'+Cb+Cr; ○: Y'
- 4:1:0
● ○ ○ ○ ○ ○ ○ ○ Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 4:1:1
● ○ ○ ○ ● ○ ○ ○ Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 4:2:0
● ○ ● ○ ○ ○ ○ ○ Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 4:2:2
● ○ ● ○ ● ○ ● ○ Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 4:4:0
● ● ● ● ○ ○ ○ ○ Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 4:4:4
● ● ● ● ● ● ● ● Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Demos
13Sincronització àudio/vídeo / Audio/video synchronisation#
- Streaming audio/video synchronisation
-
solució / solution ffmpeg vlc kdenlive snowmix
-itsoffset Eines -> Sincronització de la pista Afegeix un clip
Ungroup
Edita la duradaadd silence / drop l'àudio està avançat respecte el vídeo /
audio is ahead of the video (e.g. 200ms at 25fps)retardar l'àudio /
delay the audio- ffmpeg -i clip.mp4 -itsoffset 0.200 -i clip.mp4 -c copy -map 0:0 -map 1:1 output.mp4
- ffmpeg -i video_source -itsoffset delay -i audio_source_to_be_delayed -map 0:x -map 1:y ...
Sincronització de la pista d'àudio: 0,200ms (Retardat)
Tecla: k (+50ms)Àudio -> Posició: 00:00:00:08 - temporarily
- audio feed add silence 1 200
- audio mixer add silence 1 200
- audio sink add silence 1 200
- permanently
- audio feed delay ...
- audio mixer delay ...
- audio sink delay ...
el vídeo està avançat; l'àudio està retardat respecte el vídeo /
audio is behind the video (e.g. 100ms at 25fps)retardar el vídeo; avançar l'àudio /
delay the video; hasten audio- ffmpeg -i clip.mp4 -itsoffset 0.100 -i clip.mp4 -c copy -map 1:0 -map 0:1 output.mp4
- ffmpeg -i audio_source -itsoffset delay -i video_source_to_be_delayed -map 1:x -map 0:y ...
Sincronització de la pista d'àudio: -0,100ms (Accelerat)
Tecla: j (-50ms)Vídeo -> Posició: 00:00:00:04 - temporarily
- audio mixer drop 1 100
- permanently
- system output delay ...
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
14Pantalles TV Screens - Distàncies/Distances#
| dimensions | distància d (cm) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| D (diagonal) |
H (alçada) |
W (amplada) |
480 | 576 | 720 | 1080 (HD) |
2160 (UHD) |
4320 | N (# of lines) |
|||||
| 7H | 6H (5H-7H) | 4,78H | 3,19H | 1,6H |
0,75H | d = H /(2(N-1)tg(1'/2)) | ||||||||
| " | cm | 4/3 | 16/9 | 4/3 | 16/9 | 4/3 | 16/9 | 4/3 | 16/9 | 16/9 | 16/9 | 16/9 | 16/9 | |
| 15deg H | 30deg H | 100deg H | ||||||||||||
| 0,60D | 0,49D | 0,8D | 0,87D | 4,2D | 3,5D | 3,6D | 3D | 2,39D | 1,5D | |||||
| 3W/4 | 9W/16 | 4H/3 | 16H/9 | 1,7W | ||||||||||
| 65" |
257 |
128 |
||||||||||||
| 55" | 218 |
109 |
||||||||||||
| 50" | 130 | 78 | 64 | 104 | 113 | 560 | 457 | 466 | 381 | 304 | 203 | |||
| 49" |
194 |
97 |
||||||||||||
| 46" | 117 | 70 | 57 | 93 | 102 | 503 | 411 | 419 | 342 | 274 | 182 | |||
| 43" | 109 |
54 |
95 |
170 |
85 |
|||||||||
| 42" | 107 | 64 | 52 | 86 | 93 | 461 | 376 | 383 | 313 | 251 | 167 | |||
| 40" | 102 | 61 | 50 | 82 | 89 | 439 | 358 | 366 | 298 | 239 | 159 | |||
| 32 " | 82 | 49 | 40 | 66 | 71 | 353 | 288 | 294 | 240 | 192 | 128 | |||
| 30" | 76 | 46 | 37 | 61 | 66 | 327 | 267 | 272 | 222 | 178 | 119 | |||
| 28" | 72 | 43 | 35 | 58 | 63 | 310 | 253 | 258 | 211 | 169 | 112 | |||
| 25" | 63 | 38 | 31 | 50 | 55 | 222 | 221 | 226 | 185 | 148 | 98 | |||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Llegenda:
- tan(a/2) = s/(2d)
- H = s(N-1)
- a = 1'
- D: diagonal de la pantalla
- H: alçada de la imatge sense reescalar
- W: amplada de la pantalla
- d: distància pantalla-espectador
- s: distància entre dues línies
- N: nombre de línies
- Distàncies per a HDTV / Distances for HDTV
- distancies_tv.ods
- Size Matters: Resolution vs distance
- Optimum HDTV viewing distance (wp)
15Acústica / Acoustics#
- Audio acoustics (ePanorama)
- All About Room Design
- RPG Diffusor Systems: home theater products
- Programari / Software
- rec.audio.high-end software
- KB Acoustics (Sitting duck, Visual Ears)
- Acousalle (LESO-PB, EPFL)
- Empreses / Societies
16Àudio / Audio#
- Audio Web
- Audio Review
- Audio Video Cine En Casa (Garrido)
- HDCD
- Hi Fi on WWW
- Audiophilia
- SoundStage!
- The World Wide Web Virtual Library: Audio
- MIDI
- Corrupt audio discs, aka "Copy-Protected CDs"
- Comercial
- USB
- Alpine (Europe)
- B&W Speakers
- Bose
- Clarion (eu, es)
- Denon (es)
- Europe
- AVC 3801 review (T3)
- Mini D-250
UPO-250 etapa de potència 4Ω: 2x..W; 8Ω: 2x50 W 270 (ampl.) x 86 x 330 4,1kg UDRW-250 doble platina
4,4kg UTP-250 sintonitzador, preamplificador
3,2kg UCD-250 lector CD
3,1kg AVC-77 preamplificador AV
JM 220D caixes acústiques 4Ω 40-60W
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- PMA-900HNE
- Manual Web (pdf)
- (ampl.), 8,3 kg
- 4Ω: 2x85 W; 8Ω: 2x50 W
- DRA-100
- Manual Web (pdf)
- Reviews
- 280mm (ampl.) x 160 mm (al.) x 337 mm (fond.)
- 4Ω: 2x70 W; 8Ω: 2x35 W
- Advanced AL32 (every PCM stream is converted in 32 bits and 192 kHz)
- DLNA 1.5
- Bluetooth 2.1 + EDR
- A2DP (Advanced Audio Distribution Profile) 1.2, AVRCP (Audio Video Remote Control Profile) 1.4, apt-X
- codecs: SBC, AAC
- formats:
format freqüència de mostratge bit-rate bits extensió des de fitxer
(USB, PC, NAS)WMA 32 / 44,1 / 48 kHz 48-192 kbps - .wma MP3 32 / 44,1 / 48 kHz 32-320 kbps - .mp3 WAV 32 / 44,1 / 48 / 88,2 / 96 / 176,4 / 192 kHz - 16 / 24 bits .wav MPEG-4 AAC 32 / 44,1 / 48 kHz 16-320 kbps - .aac / .m4a / .mp4 FLAC 32 / 44,1 / 48 / 88,2 / 96 / 176,4 / 192 kHz - 16 / 24 bits .flac ALAC 32 / 44.1 / 48 / 88,2 / 96 kHz - 16 / 24 bits .m4a AIFF 32 / 44,1 / 48 / 88,2 / 96 / 176,4 / 192 kHz - 16 / 24 bits .aif / .aiff DSD (2 canals) 2,8 / 5,6 MHz - 1 bit .dsf / .dff ràdio per Internet WMA 32 / 44,1 / 48 kHz 48-192 kbps
.wma MP3 32 / 44,1 / 48 kHz 32-320 kbps
.mp3 MPEG-4 AAC 32 / 44,1 / 48 kHz 16-320 kbps
.aac / .m4a / .mp4 Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- ...
- Dolby Laboratories
- Harman Kardon
- Holophonics
- Jean Maurer
- Sound Professionals (micròfons)
- Xitel (PC-HiFi)
- Conversors / Converters
- Multicanal / Multi-channel
- Tech Blog – TV/DVD Surround Encoding Technologies
-
L C R Ls SW
Rs Lbs
Rbs Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Multi-channel formats
codec ús canals (max) used transport
cinema casa total (.sub) front centre surround surround back height1 height2 sub stereo DVB DVD BD S/PDIF
(IEC 60958/61937)HDMI
FL
LFR
RC SL SR RL RR H1L H1R H2L H2R SW DVD-V DVD-A HD-DVD
1.0 1.1 1.2 1.3 1.4 2.0 2.1 matrix
(analogue, digital)
(total: Lt, Rt)
Dolby
SR (Spectral Recording)
x
Surround
x 3.0 L R -
S
- x
Pro-logic
x 4.0 L R C
S
- Denon AVC-77
Pro-logic II
x 5.0 L R C
Ls
Rs
x PS2
Pro-logic IIx
6.1, 7.1
Pro-logic IIz
9.1
DTS Neo6
PCM LPCM
discrete
(digital)MPEG
MPEG-1 layer 2
mp2
x
MPEG-4 aac
Dolby Digital (AC-3) ac3
5.1 x x x
x
x
x
x x x mandatory (448kb/s) mandatory (640kb/s)
Digital EX
7.1
Digital Live
Digital Surround EX
x
Digital Plus / Enhanced AC-3 eac3
x
mandatory (3Mb/s) optional (1.6Mb/s)
x
True HD
mandatory (18Mb/s) optional (18Mb/s)
dts surround
x
x
ES
NEO:6
96/24
HD master audio
x
connect
virtual
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Sony Bravia AG9 (pdf)
-
LPCM Dolby Digital Dolby Digital Plus DTS in HDMI 5.1ch 32/44.1/48/88.2/96/176.4/192kHz 16/20/24bits x x x HDMI eARC (refer to help guide)
out HDMI ARC 2ch 48kHz 16bits x x x
HDMI eARC
S/PDIF (optical) 2ch 48kHz 16bits x - x Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- HDMI
- HDMI ARC
- HDMI eARC
- S/PDIF (optical)
- 2 channel LPCM: 48kHz 16 bits
- Dolby Digital
- DTS
-
- Sony PS4
- ...
- ...
17Càmeres / Cameras#
| y (mm) | x (mm) | d (mm) | |
|---|---|---|---|
| 1" | 12,8 | 9,6 | 16 |
| 2/3" | 8,8 | 6,6 | 11 |
| 1/2" | 6,4 | 4,8 | 8 |
| 1/3" | 4,8 | 3,6 | 6 |
| 1/4" | 3,6 | 2,7 | 4,5 |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- HD Camcorder database (slashCAM)
- Formats
- Sony RX100V
HFR
File format
Record setting
video
audio
data
file
major_brand
resolution
framerate coder
bitrate
sampling rate
channels coder bitrate
coder
bitrate
XAVC S 4K
25p 100M
25p 60M
XAVC S HD
XAVC
50p 50M 1920x1080
50 fps, 50 tbr h264 (High)
50011 kb/s
48000 Hz
2ch pcm_s16be (twos) 1536 kb/s
none (rtmd)
409 kb/s
PRIVATE/M4ROOT/CLIP/Cxxxx.MP4 25p 50M
100p 100M
100p 60M
AVCHD
50i 24M(FX)
50i 17M(FH)
50p 28M(PS)
25p 24M(FX)
25p 17M(FH)
MP4
1920x1080 50p 28M
1920x1080 25p 16M
1280x720 25p 6M
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Sony RX100V
- Sistema de fitxers / Filesystem
- Video cameras
- Sony Handycam HDR-CX550VE
- Internal memory
- ...
- SD card
- AVF_INFO/
- AVINxxxx.INT
- AVINxxxx.INP
- AVINxxxx.BNP
- PRIVATE/
- AVCHD/
- BDMV/
- CLIPINF/
- xxxxx.CPI
- INDEX.BDM
- MOVIEOBJ.BDM
- PLAYLIST/
- xxxxx.MPL
- STREAM/
- xxxxx.MTS
- CLIPINF/
- BDMV/
- AVCHD/
- AVF_INFO/
- Internal memory
- Sony Action Cam
- ...
- Sony Handycam HDR-CX550VE
- Photo cameras
- Canon Digital Ixus 860
- DCIM/
- 100CANON/
- IMG_xxxx.JPG
- MVI_xxxx.THM
- MVI_xxxx.AVI
- CANONMSC/
- MISC/
- M01xx.CTG
- SNDR/
- Nikon D90
- DCIM/
- 100NCD90/
- DSC_xxxx.JPG
- DSC_xxxx.NEF
- DSC_xxxx.AVI
- 100NCD90/
- NIKON/
- CUSTOMPC/
- NIKONxxx.DSC
- DCIM/
- Sony RX100V
- AVF_INFO/
- AVINxxxx.INT
- PRVxxxxx.BIN
- DCIM/
- 100MSDCF/
- DSCxxxxx.JPG
- DSCxxxxx.ARW
- 100MSDCF/
- MISC/
- MP_ROOT/
- 100ANV01/
- PRIVATE/
- AVCHD/
- BDMV/
- CLIPINF/
- xxxxx.CPI
- INDEX.BDM
- MOVIEOBJ.BDM
- PLAYLIST/
- xxxxx.MPL
- STREAM/
- xxxxx.MTS
- CLIPINF/
- BDMV/
- M4ROOT/
- CLIP/
- Cxxxx.MP4
- CxxxxMyy.XML
- GENERAL/
- MEDIAPRO.XML
- STATUS.BIN
- SUB/
- THMBNL/
- CxxxxTyy.JPG
- CLIP/
- SONY/
- AVCHD/
- AVF_INFO/
- Canon Digital Ixus 860
- Càmeres endoscòpiques
-
marca model app usb resolució wifi longitud diàmetre accessoris preu Aopick Lentille Unique 5m Sup-Anesok USB-C+adapt. 1920x1440 - 5m 7,9mm ganxo, imant, mirall 39,99€ Aopick (doble lent) Sup-Anesok USB-C+adapt. 1280 x 960
1920 x 1440- 5m 7,9mm ganxo, imant 49,99€ Depstech
USB-C+adapt. 1280x720 - 5m 5,5mm x 33,99€ Hopefox W300-ONE Anesok USB-C+adapt. 1920x1440 x 3m 7,9mm
34,99€ Hopefox W300-D (doble lent) Anesok USB-C+adapt. 1920x1440 x 3m 7,9mm
42,99€ Lightswim 1920P
USB-C+adapt. 1920x1440
5m 7,9mm
39,90€ Lightswim 1432P (doble lent)
USB-A + adapt. 712p (lateral),
720p (frontal)
5m
Yovoca
Anesok USB-C+adapt. 1920x1440 x 3m 7,9mm
39,79€ Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- ...
- Video cameras
18Car audio#
- MyBugaSound
- Car Audio Direct (uk)
- Car Audio Discount (uk)
- Connects2 (uk)
19Comercial / Commercial#
20Component Connectivity#
- Open S-link project
- Nirvis
- HAVi (Home Audio Video
Interoperability)
- Vivid Logic
- Air5 (Magis) (wireless IEEE 1394)
- IEEE 1394 vs. DVI
- Serial Digital Interface - SDI (wp)(vp)
-
-
name standard bit-rate SD-SDI SMPTE 259M - 270 Mbps (10b,4:2:2) (13,5*10+6,75*10+6,75*10)
- 360 Mbps (16:9)
- 177 Mbps (8b, 4:2:0) (13,5*8+6,75*8+audio)
ED-SDI SMPTE 344M
HD-SDI SMPTE 292M
Dual link HD-SDI SMPTE 372M
3G-SDI SMPTE 424M
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Synchronisation packets:
-
-
4 10bit words
1st 2nd 3rd XYZ word
1 F V H p3p2p1p0 00
0x3FF
1111111111b0x000
0000000000b0x000
0000000000b1 0
00 first field 1
second field
0
active picture
1
vertical interval
0 Start of Active Video (SAV)
1 End of Active Video (EAV) Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- Ancilliary data (audio, subtitles, timecode, metadata):
-
- 0x000, 0x3FF, 0x3FF
-
SAV, EAV, active, vertical... ancilliary data , XYZ word: 1FVHppp00
line 720 pixels 12 pixels 132 pixels
pixel ->
0,1 ... 718,719 720, 721 (EAV) ... 730, 731 732, 733 ... 862, 863 (SAV)
sample ->
0 1 2 3 ... 1436 1437 1438 1439 1440 1441 1442 1443 ... 1460 1461 1462 1463 1464 1465 1466 1467 ... 1724 1725 1726 1727 first field vertical F1:1
...
0x3FF 0x000 0x000 .011.....
0x3FF 0x000 0x000 .010..... ...
...
...
... F1:22
...
.011.....
.010..... active F1:23 Cb Y Cr Y' ... Cb Y Cr Y' .001.....
.000..... F1:24 Cb Y Cr Y' ... Cb Y Cr Y' .001.....
.000..... ... Cb Y Cr Y' ... Cb Y Cr Y' ...
... F1:310 Cb Y Cr Y' ... Cb Y Cr Y' .001.....
.000..... vertical
F1:311
...
.011.....
.010..... F1:312
...
.011.....
.010..... F1:313
...
second field
...
.111.....
.110..... F2:314
...
.111.....
.110..... ...
...
...
... F2:335
...
.111.....
.110..... active F2:336 Cb Y Cr Y' ... Cb Y Cr Y' .101.....
.100..... F2:337 Cb Y Cr Y' ... Cb Y Cr Y' .101.....
.100..... ... Cb Y Cr Y' ... Cb Y Cr Y' ...
... F2:623 Cb Y Cr Y' ... Cb Y Cr Y' .101.....
.100..... vertical F2:624
...
.111.....
.110..... F2:625
...
.111.....
.110..... Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- F: first field (F=0), second field (F=1)
- V: active (V=0), vertical sync (V=1)
- H: SAV (H=0), EAV (H=1)
- ITU recommendations:
-
- ITU-R BT.1364
-
- HDMI
- Wikipedia
- 3D portion of the HDMI Specification v1.4a
-
content
movie frame packing - 1080p @ 23.98/24Hz
game frame packing - 720p @ 50 or 59.94/60Hz
broadcast side-by-side horizontal - 1080i @ 50 or 59.94/60Hz
top and bottom - 720p @ 50 or 59.94/60Hz
-
- 1080p @ 23.97/24Hz
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Senyalització 3D / 3D signalling (1.4a):
-
- 3D_Structure
(HDMI 1.4a table 8.13, table H.2)
3D_Structure meaning 3D_Ext_Data 0000 frame packing not present 0001 field alternative 0010 line alternative 0011 side-by-side (full) 0100 L+depth 0101 L+depth+graphics+graphics_depth 0110 top-and-bottom (half) 0111 reserved for future use 1000 side-by-side (half) present (next table) 1001-1110 reserved for future use present 1111 not in use
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 3D_Ext_Data
(in VendorSpecific info frame) (HDMI
1.4a table
H.3)
3D_Ext_Data meaning 00xx horizontal subsampling 0100 quincunx matrix odd/left picture, odd/right picture 0101 odd/left picture, even/right picture 0110 even/left picture, odd/right picture 0111 even/left picture, even/right picture 1000-1111 reserved Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 3D_Structure
(HDMI 1.4a table 8.13, table H.2)
- HDMI converters (eBay)
- DVI, HDCP, HDMI (Time Warner Cable FAQ)
-
ver date bandwidth video audio MHz Gbps RGB bits colour space Dolby DTS YCbCr CE RGB xvYCC Digital TrueHD
HD 1.0 12/02 165 4,95
1.1 05/04
x
1.2 08/05 24 x x - x x
x 1.2a 12/05
1.3 06/06 340 10,2 30, 36, 48 x x x x x x x 1.4
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- HDBaseT (wp) (*)
- HAVi / IEEE1394
- WirelessHD
21Connexions / Connections#
| RCA | S-video (4pin MiniDIN) |
scart | 15Dsub | DVI | HDMI | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| A | I | D | ||||||||
| analogue | composite | SD | SD | |||||||
| Y/C | SD | SD | ||||||||
| components | RGB | HD | SD | HD | HD | |||||
| YCC/YPP | HD | |||||||||
| digital | TMDS | HD | HD | |||||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Connection wizard (DTG)
- SCART
(Euroconnector)
- Conversors / Converters
- Àudio / Audio
-
TR TRS TRRS (CTIA) TRRS (OMTP) (old)
mono
earstereo
earmono
micstereo
micstereo ear
mono micstereo ear
mono micTip ear left ear mic
left mic
left ear left ear Ring ground right ear mic
right mic
right ear right ear Ring ground ground ground ground mic Sleeve mic ground Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Cable
- Òptic
-
marca model preu (3m) Audioquest Pearl Forest Cinnamon - 139€ (Supersonido)
Carbon - 229€ (Supersonido)
Vodka - 459€ (Supersonido)
HRL Definition - 20,90€ (2,5m) (Supersonido)
Inakustik Star - (Audioreference)
- 28,49€ (Supersonido)
Premium QED Connect - 13,95€ (Supersonido)
Profile Performance - 79€ (Supersonido)
Reference Quartz - 249€ (Supersonido)
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
-
- Òptic
-
22DAC (Digital to Analogue Converter)#
- ...
- DAC GV-BA01
(Gaia Vision)
- inputs: bluetooth, S/PDIF PCM (Toslink-optical, coaxial)
- outputs: headphones, analogue RCA L/R
- dimensions: 84x28x65mm
-
marca model entrada
sortida
dimensions
(WxHxD mm)preu Gaia Vision GV-BA01
84x28x65
Pro-Ject ProJect Pre-Box S2 Digital (ed. 2023)
103x37x122 - 319 € + 8€ (Audioreference)
...
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
23DV#
24Discs#
25Gestió de drets / Rights Management#
- Home Recording Rights Coalition
- Serial Copyright Management System (SCMS)
- Macrovision
- DVD CCA (CSS)
- Associacions / Associations
26Home Cinema#
- THX
- Dolby Laboratories
- Dolby Pro-Logic
- Christian Home Page
- Dolby Surround Installation Guide
- SMR Home Theatre Audio/Video Magazine
- Cyber Theater
- Publicacions / Publications
- Collins' Cinema My Home Theater
- Mobles / Furnitures
- Childproof Home Theater
- Marques / Brands
27Home Theater PC (HTPC)#
28Maquinari / Hardware#
- Captura HDMI / HDMI capture
-
- AverMedia Game Capture HD II
-
- GameMate (Android)
- Hauppauge HD PVR Rocket
-
- Programari / Software
- Zidoo X9S
- Splitter
- Conversor d'àudio / Audio converter
- SPDIF -> RCA
- GV-BA01
- SPDIF
- coaxial
- bluetooth
- GV-BA01
- SPDIF -> RCA
29MIDI#
30Minidisc#
- minidisc.org
- The MiniDisc Appreciation Page (compared to DAT, cassette, CD)
- Minidisc Island (Sony) (flash animations)
- Quesabesde Minidisc
- Magic's Place Minidisc Stuff
31MP3 ( MPEG -1 Layer III)#
32Qualitat / Quality#
- ITU-R
- EBU
33Salons / Events#
34AFD Active Format Description#
| STB into 4:3 display | STB into 16:9 display | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AR
(source aspect ratio) (coded frame) |
AFD (area of interest) |
result |
STB user preferences | decoder format conversion | signalling
to TV |
display user preference | decoder format conversion | signalling
to TV |
display user preference | |||||||||||||||
| coded into -> | MPEG-2 video | aspect_ratio_information
(DAR) (sequence header)(TS 101 154: 5.1.3, 5.2.3, 5.3.3, 5.4.3, B.3.1) |
user
identifier: active_format(sequence, GOP, picture headers) |
WSS | scart pin 8 | WSS | scart pin 8 | 4:3
pillar box |
14:9
pillar box |
zoom | auto | wide | smart | |||||||||||
| AVC | aspect_ratio_idc(TS 101 154: 5.6.1.3, 5.7.1.2, B.3.2) |
SEI message | ||||||||||||||||||||||
| code | description | code | description | code | description | code | desc | code | desc | |||||||||||||||
|
|
|
0010 | 4:3 | 1000 | as coded | 4:3 | full frame | 0001 | full 4:3 | 12v | full
frame
|
0001 | full 4:3 | 12v
|
B (PB) | D (14:9 PB) | C (crop top & bottom) | B (PB) | A (fill) | ? |
||||
| 1001 | 4:3 (centre) | |||||||||||||||||||||||
| 1010 | 16:9 (centre) | 16:9 LB | 1101 | 16:9 LB centre | 1101 | 16:9 LB centre | C | C | C | C | C | C | ||||||||||||
| 1011 | 14:9 (centre) | 14:9 LB | 1000 | 14:9 LB centre | 1000 | 14:9 LB centre | D | D | C | D | A | ? | ||||||||||||
| 1100 | reserved | 0001 | full 4:3 | 0001 | full 4:3 | B | D | C | B | A | ? | |||||||||||||
| 1101 | 4:3 (with shoot & protect 14:9 centre) | full 4:3, S&P 14:9 |
0111 | full 4:3, S&P 14:9 |
0111 | full 4:3, S&P 14:9 |
B | D | C | D | A | ? | ||||||||||||
| 1110 | 16:9 (with shoot & protect 14:9 centre) | 16:9 LB, S&P 14:9 |
1101 | 16:9 LB centre | 1101 | 16:9 LB centre | C | C | C | C | C | C | ||||||||||||
| 1111 | 16:9 (with shoot & protect 4:3 centre) | 4:3 | 0001 | full 4:3 | 0001 | full 4:3 | B | D | C | B | A | ? | ||||||||||||
| 0011 |
16:9
|
1000 | as coded | 16:9 | 16:9 LB | 16:9 LB | 1101 | 16:9 LB centre | 12v | 1110 | full 16:9 | 6v | A | A
|
A |
A |
A |
A |
||||||
| 14:9 LB | 14:9 LB | 1000 | 14:9 LB centre | |||||||||||||||||||||
| centre cut-out | centre cut-out | 0001 | full 4:3 | |||||||||||||||||||||
| TV feature | full frame | 1110 | full 16:9 | 6v | ||||||||||||||||||||
| 1001 | 4:3 (centre) | 4:3 PB | - | centre cut-out | 0001 | full 4:3 | 12v | centre cut-out | 0001 | full 4:3 | 12v | B | D | C | B | A | ? | |||||||
| 1010 | 16:9 (centre) | 16:9
|
16:9 LB | 16:9 LB | 1101 | 16:9 LB centre | 12v | full
frame
|
1110 |
full
16:9 |
6v
|
A |
A |
A |
A |
A |
A |
|||||||
| 14:9 LB | 14:9 LB | 1000 | 14:9 LB centre | |||||||||||||||||||||
| centre cut-out | centre cut-out | 0001 | full 4:3 | |||||||||||||||||||||
| TV feature | full frame | 1110 | full 16:9 | 6v | ||||||||||||||||||||
| 1011 | 14:9 (centre) | 14:9 PB | - | centre cut-out | 0001 | full 4:3 | 12v | |||||||||||||||||
| 1100 | reserved | |||||||||||||||||||||||
| 1101 | 4:3 (with shoot & protect 14:9 centre) | 4:3 PB, S&P 14:9 | - | centre cut-out | 0001 | full 4:3 | 12v | centre cut-out | 0111 | full 4:3, S&P 14:9 |
12v | B | D | C | D | A | ? | |||||||
| 1110 | 16:9 (with shoot & protect 14:9 centre) | full 16:9, S&P 14:9 | 16:9 LB | 16:9 LB | 1101 | 16:9 LB centre | 12v | full
frame
|
1110
|
full
16:9
|
6v
|
A
|
A
|
A
|
A
|
A
|
A
|
|||||||
| 14:9 LB | 14:9 LB | 1000 | 14:9 LB centre | |||||||||||||||||||||
| centre cut-out | centre cut-out | 0001 | full 4:3 | |||||||||||||||||||||
| TV feature | full frame | 1110 | full 16:9 | 6v | ||||||||||||||||||||
| 1111 | 16:9 (with shoot & protect 4:3 centre) | full 16:9, S&P 4:3 | 16:9 LB | 16:9 LB | 1101 | 16:9 LB centre | 12v | |||||||||||||||||
| 14:9 LB | 14:9 LB | 1000 | 14:9 LB centre | |||||||||||||||||||||
| centre cut-out | centre cut-out | 0001 | full 4:3 | |||||||||||||||||||||
| TV feature | full frame | 1110 | full 16:9 | 6v | ||||||||||||||||||||
| 0100 | 2.21:1 | - | - | |||||||||||||||||||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- A: Makes incoming picture fill the display. Preserves geometry of 16:9, but distorts 4:3 based formats.
- B: Makes pillar box of 4:3 signal.
- C: Expands 4:3 to fill width.Crops top & bottom to preserve geometry
- D: Expands 14:9 letter box to 14:9 pillar box with correct geometry.
...
35Auriculars#
| marca | model | control de volum als auriculars |
cancel·lació de soroll |
info | preu |
|---|---|---|---|---|---|
| The Best Wireless Earbuds under $100 - October 2025 | |||||
| Pixel Buds A-Series | - |
- | 2a: 149€ | ||
| Pixel Buds Pro | x | x | Pro2: 249€ | ||
| OnePlus | Buds 4 | x | x | idealo 119€ 97€ |
|
| Sennheiser | |||||
| Sony | WF-C700N | x | x | idealo 69€ |
|
| Xiaomi | Xiaomi Buds 5 Pro | ? | |||
| Xiaomi Buds 5 | |||||
| REDMI Buds 6 Pro | x | x | review | 59,99€ | |
| REDMI Buds 6 | |||||
| REDMI Buds 5 Pro | - | x | |||
| REDMI Buds 5 |
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
http://www.francescpinyol.cat/audio_video.html
Darrera modificació: 21 de març de 2026 / Last update: 21st March
2026