[[Vorlage(Archiviert)]] {{{#!vorlage Warnung Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos. }}} {{{#!vorlage Hinweis Diese Howto-Anleitung wurde zuletzt von [user:linux_joy:] am 31.05.2017 unter '''Ubuntu 14.04''' erfolgreich getestet. }}} {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(3)]] Hat man die Adresse herausgefunden – etwa durch den Artikel [:Archiv/Howto/Stream-Adressen ermitteln:] – dann sollte das Herunterladen funktionieren. Bei normalen HTTP-Adressen kann man eine Datei mit einem [:Download-Manager:] ebenso herunterladen wie mittels [#Stream-Download-und-ggf-Umwandlung-mit-VLC VLC]. Man kann auch eine "Download-Erweiterung" für den Browser nutzen (z.B. [https://addons.mozilla.org/de/firefox/addon/video-downloadhelper/ Video DownloadHelper] {en} {de} für Firefox oder [https://addons.opera.com/de/extensions/details/fvd-video-downloader/?display=de FVD] {en} für [:Opera:]). Anders läuft es jedoch beim [:Archiv/Howto/Stream-Adressen_ermitteln/#HTTP-Streaming:HTTP-Streaming]. Dateien mit einer Streaming-URL mit entweder dem Anfang `mms://` oder `rtsp://` lassen sich in vielen Fällen mit dem [:MPlayer:] herunterladen. Das gleiche gilt auch für URLs mit der Endung '''.asx'''. Bei Dateien aus einer Streaming-URL mit dem Anfang `rtmp://` kommen die beiden Programmen flvstreamer und rtmpdump in Betracht. Sie haben nahezu die identische Befehls-Syntax, ersteres ist aber weniger leistungsfähig. Diese können über die offiziellen Paketquellen installiert werden, was im nachfolgenden Abschnitt beschrieben wird. Allgemein gilt: Falls der Stream nicht nur bloß heruntergeladen und in eine Datei kopiert, sondern auch noch zusätzlich transkodiert wird, so dauert der Vorgang mitunter um einiges länger. = Programme installieren = Für [http://savannah.nongnu.org/projects/flvstreamer flvstreamer] {en} muss das folgende Paket installiert werden:[1] {{{#!vorlage Paketinstallation flvstreamer, universe }}} Für [http://rtmpdump.mplayerhq.hu/ rtmpdump] {en} muss das folgende Paket installiert werden:[1] {{{#!vorlage Paketinstallation rtmpdump, universe }}} In diesem Paket befindet sich auch das Programm rtmpgw, welches ein HTTP-RTMP Stream Gateway ist. Näheres im Artikel [:Internet-TV/Stationen:]. Für die Benutzung von rtmpdump siehe den [wikipedia_en:RTMPDump:Wikipedia-Artikel]. Alle Optionen findet man in den [:man:Manpages] von flvstreamer bzw. rtmpdump. = Live-Streams sowie Video- oder Audio-Streams aufnehmen = == HLS (HTTP Live Stream) aufnehmen == Ein [:Archiv/Howto/Stream-Adressen_ermitteln/#HTTP-Streaming:HLS] kann mit `ffmpeg` (aus dem [:FFmpeg:]-Projekt) bzw. [:Archiv/avconv:] (aus dem [:Archiv/Libav:]-Projekt) aufgenommen werden. Dabei werden Video-, Audio- und Untertitelstreams in eine Containerdatei kopiert (also ohne sie zu re-encodieren). Der Befehl[3] dafür lautet allgemein: {{{#!vorlage Befehl ffmpeg -i http://Adresse.m3u8 -c copy /Pfad/zur/Zieldatei.mkv }}} Man kann die Aufnahme mit der Tastenkombination [[Vorlage(Tasten, ctrl+c)]] stoppen. Bei On-Demand-Streams geschieht dies am Ende automatisch. Alternativ kann man auch die URL in Anführungszeichen setzen, und/oder die CODEC-Angabe sowie ggf. auch das Ausgabeformat modifizieren: {{{#!vorlage Befehl ffmpeg -i "http://Adresse.m3u8" -codec: copy /Pfad/zur/Zieldatei.mp4 }}} In beiden vorherigen Beispielen werden dabei Streams mit nicht-unterstützten Codecs von ffmpeg einfach kommentarlos links liegen gelassen. Außerdem wählt ffmpeg die seiner Ansicht nach besten Streams aus der m3u8-Wiedergabeliste aus (siehe dazu auch [https://ffmpeg.org/ffmpeg.html#Stream-selection Stream selection] {en} in der FFmpeg-Dokumentation). Diese müssen aber nicht zwangsläufig auch die tatsächlich hochwertigsten sein! Im folgenden Beispiel werden deshalb alle vorhandenen Streams mit von FFmpeg unterstützten Codecs im Programm mit der anzugebenen Programm-Nummer (welche man vllt. über den Abschnitt [:Archiv/Howto/Stream-Adressen_ermitteln/#Informationen-zu-den-ermittelten-Stream-Adressen-anzeigen: Informationen zu den ermittelten Stream-Adressen anzeigen] bekommen hat) in die Zieldatei kopiert. Außerdem wird lediglich ein Teil des gesamten Streams kopiert, und die üblichen Informationen über FFmpeg selbst werden unterdrückt: {{{#!vorlage Befehl ffmpeg -hide_banner -re -ss 01:05:02 -t 230 -i http://Adresse.m3u8 -map p:5 -codec: copy /Pfad/zur/Zieldatei.mp4 }}} * Mit der Option `-hide_banner` wird verhindert, dass FFmpeg seine ansonsten obligatorischen Eigen-Informationen wie z.B. Versions-Nummern und Built-Optionen ausgibt. * Die optionale Option `-re` bewirkt, dass die Streams mit ihrer tatsächlichen Frame-Rate (fps (frames per second)), also in Echtzeit anstatt sonst so schnell wie möglich, gestreamt werden. Dies kann notwendig werden, falls der Stream ohne diese Option nach kurzer Zeit hängen bleibt und die Aktion dann deshalb manuell mittels der Tastenkombination [[Vorlage(Tasten, ctrl+c)]] abgebrochen werden muss! * `-ss 01:05:02 -t 230`: Zuerst die Startposition in Stunden, Minuten u. Sekunden; danach die Dauer in Sekunden. Letztere kannalternativ auch als `-t 00:03:50` angegeben werden. Je nach Einsatzzweck kann man Startposition oder Dauer auch weglassen. Näheres über die [http://www.ffmpeg.org/ffmpeg-utils.html#time-duration-syntax Zeit-Syntax] {en} steht in der FFmpeg-Dokumentation. {{{#!vorlage Hinweis Leider erscheint bei neueren ffmpeg-Versionen die Meldung: {{{ Timestamps are unset in a packet for stream 1. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly \}}} Dies scheint jedoch nicht weiter von Bedeutung zu sein. }}} * `-map p:5`: Die Programm-Nummer hat man vllt. durch ffprobe / avprobe über die Ausgabe von "Metadata: variant_bitrate" herausbekommen. Erstere kann auch mehrstellig sein. Bei letzterer Angabe gilt: Je höher, desto besser! * `-codec: copy` gibt an, dass alle angegebenen Streams lediglich kopiert werden und nicht re-encodiert. Das folgende Beispiel ist aus verschiedenen Gründen exakt so angelegt: {{{#!vorlage Befehl ffmpeg -headers $'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"\r\n' -i http://Adresse.m3u8 -map 0:p:4 -map -0:14 -codec: copy -b:v 50k -b:a 50k -bsf:a aac_adtstoasc /Pfad/zur/Zieldatei.mp4 }}} * Mit der Option `-headers` wird in diesem Fall der sogenannte "User Agent" geändert (Siehe auch den Abschnitt [#Programmkennung-aendern: Programmkennung ändern]). * `-map 0:p:4 -map -0:14` bedeutet, dass alle Spuren des Programmes Nr. 4 der ersten Eingangsdatei außer der darin enthaltenen Datenspur mit dem Stream-Index 14 verwendet werden sollen. Letzterer wird ausgespart, weil [:Archiv/Howto/Stream-Adressen_ermitteln/#Informationen-zu-den-ermittelten-Stream-Adressen-anzeigen: ffprobe] zuvor die Meldung `Unsupported codec with id 1414087731 for input stream 14` ausgegeben hat. Allerdings werden dabei normalerweise Streams mit nicht-unterstützten Codecs von ffmpeg sowieso automatisch ausgespart! * `-b:v 50k -b:a 50k` bedeutet, dass die Bitrate für sämtliche Video- und Audiokanäle der Zieldatei auf 50k gesetzt wird. In diesem Fall bedeutet das jedoch keine Einschränkung: Im Gegenteil, die Bitrate ging auf 1951.3 kbits/s hoch (Angabe in der Statuszeile). In vorhergehenden Versuchen ohne diese Optionen lag sie nur bei knapp der Hälfte, und der Stream hang nach kurzer Zeit, so dass die Aktion dann manuell mittels der Tastenkombination [[Vorlage(Tasten, ctrl+c)]] abgebrochen werden musste. Offenbar kann der ausliefernde Streaming-Server ohne diese Optionen die Bitrate nicht vernünftig regeln! Wichtig ist in diesem Zusammenhang auch die fps-Angabe (frames per second): Je höher, desto besser! Allerdings muss das Setzen dieser Optionen auf solch niedrige Werte die Bitrate bzw. die fps-Rate auch nicht zwangsläufig in die Höhe treiben, das liegt immer am jeweiligen Server! * `-bsf:a aac_adtstoasc` setzt für alle Audiokanäle den Bitstrom-Filter `aac_adtstoasc`. In vorhergehenden Versuchen ohne diese Option hatte es nämlich die Fehlermeldung `Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg) – av_interleaved_write_frame(): Operation not permitted` gegeben. == HDS (HTTP Dynamic Stream) aufnehmen == Mithilfe des in [:PHP:] geschriebenen Skriptes [github:K-S-V/Scripts/blob/master/AdobeHDS.php:AdobeHDS.php] {en} von [github:K-S-V/Scripts:K-S-V's GitHub-Seite] {en} können Multimedia-[:Streaming:Streams] im Format [:Archiv/Howto/Stream-Adressen_ermitteln/#HTTP-Streaming:HDS] (Adobe HTTP Dynamic Streaming) entweder aufgenommen oder – via [:Shell/Umleitungen/#Der-Pipe-Operator:Pipe-Operator] – an einen Mediaplayer weitergeleitet werden. Dabei werden zunächst die einzelnen Fragment-Dateien heruntergeladen, in eine '''flv'''-Containerdatei kopiert (also ohne sie zu re-encodieren) und dabei nahtlos zusammengefügt. Anschließend werden die heruntergeladenen Fragmente gelöscht. Von dem Skript werden sowohl On-Demand-Streams als auch Live-Streams [:Streaming/#Streaming-Arten:verarbeitet]. Die Benutzung des Skriptes erfolgt über die Kommandozeile. == RTMP-Streams aufnehmen == Zum Speichern von `rtmp://`-Streams siehe auch z.B. den externen Abschnitt [:Archiv/Streams_speichern/Beispiele/#Streaming-Videos-des-BR: Streaming-Videos des BR]. == MMS-Streams aufnehmen == `mms://`-Streams lassen sich sehr einfach mit MPlayer über ein Terminal[3] aufnehmen. * bei direkten `mms://`-Dateien: {{{#!vorlage Befehl mplayer -dumpstream mms://example.com/Globalplayers/GP_14.wmv -dumpfile ./download/test.wmv }}} Die Adresse des Streams `mms://example.com/Globalplayers/GP_14.wmv` ist frei erfunden und nur ein Beispiel. Diese '''.wmv'''-Datei würde nun als '''test.wmv''' im Verzeichnis '''/download''' innerhalb des Home-Verzeichnisses des aktuell angemeldeten Benutzers gespeichert. * Bei indirekten `mms://`-Dateien (URLs mit der Endung '''.asx''') lautet dagegen die Befehlszeile: {{{#!vorlage Befehl mplayer -playlist Streaming-Adresse.asx -dumpstream -dumpfile Dateipfad.wmv }}} Man kann die Aufnahme mit der Tastenkombination [[Vorlage(Tasten, ctrl+c)]] stoppen. Bei On-Demand-Streams geschieht dies am Ende automatisch. Manchmal erhält man während der Speicherung die Meldung: {{{ Stream not seekable! }}} Dies bedeutet jedoch nicht, dass das Herunterladen nicht funktioniert. Je nach Größe der Datei dauert es eine Weile bis sich wieder etwas tut. Ist das gesamte Video gespeichert, dann erhält man die Meldung: {{{ Everything done. Thank you for downloading a media file containing proprietary and patented technology. Core dumped ;) Exiting... (End of file) }}} Zum Speichern von `mms://`-Streams können auch die Kommandozeilen-Programme [:Archiv/mimms:] und mmsrip genutzt werden. == RTSP-Streams aufnehmen == === FFmpeg === `rtsp://`-Streams lassen sich sehr einfach mit FFmpeg bzw. avconv (aus dem Libav-Projekt) über ein Terminal[3] aufnehmen. Dabei werden Audio- und Videostreams in eine Containerdatei kopiert (also ohne sie zu re-encodieren). Der Befehl[3] dafür lautet allgemein: {{{#!vorlage Befehl ffmpeg -i rtsp://Adresse -acodec copy -vcodec copy /Pfad/zur/Zieldatei.mp4 }}} Man kann die Aufnahme mit der Tastenkombination [[Vorlage(Tasten, ctrl+c)]] stoppen. Bei On-Demand-Streams geschieht dies am Ende automatisch. Siehe auch den Abschnitt [#HLS-HTTP-Live-Stream-aufnehmen HLS (HTTP Live Stream) aufnehmen] sowie den hierfür als Quelle verwendeten Link [stackoverflow:16259588/how-to-dump-raw-rtsp-stream-to-file:How to dump raw RTSP stream to file?] {en}. === MPlayer === `rtsp://`-Streams lassen sich ebenfalls sehr einfach mit MPlayer über ein Terminal[3] aufnehmen. Das Verfahren funktioniert im Prinzip genauso wie bei [#MMS-Streams-aufnehmen MMS-Streams aufnehmen], jedoch muss man allgemein natürlich `mms://` durch `rtsp://` ersetzen und: * bei direkten `rtsp://`-Streams '''.wmv''' durch '''.rm''' bzw. '''.mp4''', sowie * bei indirekten `rtsp://`-Streams '''.asx''' durch '''.mov''' Man kann die Aufnahme mit der Tastenkombination [[Vorlage(Tasten, ctrl+c)]] stoppen. Bei On-Demand-Streams geschieht dies am Ende automatisch. = Stream-Download und ggf. Umwandlung mit VLC = Mit [:VLC:] kann man einen Stream speichern und ggf. gleichzeitig in ein anderes Video- bzw. Audioformat umwandeln. == GUI == === Live-Streams === VLC bietet die Möglichkeit, [:Internetradio/Stationen: Radio-] und [:Internet-TV/Stationen:Fernsehstreams] abzuspielen. Dazu die Internet-Adresse des Radiostreams in die Zwischenablage kopieren und in ''"Medien → Netzwerkstream öffnen → Netzwerk"'' ([[Vorlage(Tasten,Strg+n)]]) im Feld ''"Adresse"'' einfügen. Anschließend muss man die ''"Wiedergabe-Taste"'' drücken, die sich unten befindet. Alternativ kann die Funktion ''"URL aus Zwischenablage öffnen"'' ([[Vorlage(Tasten,Strg+v)]]) verwendet werden. ==== Stream-Aufnahmen und "Time-Shift" ==== Auch das Aufnehmen von Streams und "Time-Shift" sind problemlos möglich. Dazu im Hauptfenster im Reiter ''"Ansicht → Erweiterte Steuerung"'' aktivieren. Es erscheinen weitere Bedienelemente, u.a. ein roter Aufnahme-Knopf. Aufnahmen werden mit dem Präfix '''vlc-record-''' sowie unter Angabe der Zeit und der Stream-Adresse im [:Homeverzeichnis:] ('''~/Downloads/''') des Benutzers in streamart-spezifischen Datei-Typen (z.B. '''.mp4''' oder '''.ts''') abgelegt. Ein benutzerdefinierter Ort lässt sich über ''"Werkzeuge → Einstellungen → Input/Codecs"'' unter ''"Files → Aufnahme-Verzeichnis oder Dateiname"'' festlegen. Manchmal ist Letzteres sogar ein Muss weil kein Aufnahme-Verzeichnis voreingestellt ist und somit auch nichts aufgenommen wird! Wenn man bei laufender Sendung den Pause-Knopf betätigt, wird die Wiedergabe unterbrochen. Ein erneutes Drücken lässt den Stream an der angehaltenen Stelle weiterlaufen. Nach Beenden des Players werden auch die während des Pausierens angelegten temporären Dateien gelöscht. "Time-Shift" ist auch in Verbindung mit der Aufnahme-Funktion möglich. === On-Demand-Streams === Über ''"Medien -> Konvertieren/Speichern"'' kommt man zum Reiter ''"Netzwerk"'', wo man die Stream-Adresse einträgt. Nach dem Klick auf ''"Konvertieren / Speichern"'' öffnet sich ein Fenster, in dem man zum einen den Speicherort bestimmen und zum anderen auswählen kann, ob man bloß den ''"Raw-Input speichern"'' oder zusätzlich auch noch ''"Konvertieren"'' möchte. Bei der letzteren Möglichkeit kann man das gewünschte Video- bzw. Audioformat bestimmen. == Terminal == Streams lassen sich mit dem VLC-Player auch über ein Terminal[3] aufnehmen und ggf. gleichzeitig in ein anderes Video- bzw. Audioformat umwandeln. Es gibt verschiedene Syntax-Möglichkeiten: {{{#!vorlage Befehl vlc URL-DES-STREAMS --sout=Videos/Datei.mp4 }}} {{{#!vorlage Befehl vlc -v URL-DES-STREAMS --sout=file/mp4:Videos/Datei.mp4 }}} {{{#!vorlage Befehl vlc -v URL-DES-STREAMS --sout="#std{access=file,mux=mp4,dst=Videos/Datei.mp4}" }}} * `-v` sowie `-vv` und `-vvv` sind die Verbose-Level von VLC bzw. cvlc und erhöhen damit auf der Kommandozeile entsprechend die Anzahl der ausgegebenen Programmaktivitätsinformationen (optional). * `sout=` lässt den Speicherort, den Namen und das Format der Aufnahme festlegen. Es werden hier Beispiele von verschieden ausführlichen Schreibweisen gezeigt. * `file/mp4` bedeutet, dass die Ausgabe im MPEG4-Format in eine Datei geschrieben wird. * `Videos/Datei.mp4` bedeutet, dass es die Ausgabe-Datei '''Datei.mp4''' im Verzeichnis '''~/Videos''' im Home-Verzeichnis ist. * `vlc` lässt den VLC-Player ein Fenster öffnen und den Aufnahmefortschritt anzeigen. Möchte man hingegen kein VLC-Player-Fenster, so kann man `cvlc` anstelle `vlc` nehmen. `cvlc` lässt einen den Aufnahme-Fortschritt aber nur indirekt über einen Dateimanager beobachten! * `vlc` / `cvlc` müssen mit der Tastenkombination [[Vorlage(Tasten, ctrl+c)]] beendet werden. Die optionale `--play-and-exit`-Option sorgt dafür, dass VLC / cvlc nach der Aufnahme des Tracks automatisch beendet wird. Bei den vorangegangenen Befehlen wurde der Stream immer auch transkodiert, selbst wenn er schon im gewünschten Format vorlag. Möchte man dies unterbinden, so bietet sich dazu der folgende Befehl an: {{{#!vorlage Befehl vlc -v URL-DES-STREAMS --sout="#file{dst=Videos/Datei.mp4} sout-keep" }}} {{{#!vorlage Hinweis * Bei `vlc` sollte man tunlichst im VLC-Fenster die Steuerungs-Option ''"Liste bzw. Einzelstück wiederholen"'' deaktivieren weil ansonsten der Stream nach kurzer Pause erneut heruntergeladen wird, wobei die bereits vorhandene Datei ohne Rückfrage überschrieben wird! Daran ändert auch nichts die optionale `--play-and-exit`-Option. Abhilfe schafft aber zuverlässig das Options-Doppel `--no-repeat --no-loop`. * Um eventuell noch an zusätzliche Terminal-Optionen zu kommen – besonders wenn man auch transkodieren will – bietet sich die Hilfe der GUI an. [http://superuser.com/questions/287222/how-to-create-a-file-that-tells-vlc-to-start-recording-a-stream Hier bei superuser.com] {en} existiert eine sehr gute Anleitung dafür. }}} = Informationen zu den heruntergeladenen Streaming-Dateien anzeigen = Möchte man lediglich den Dateitypen von Streaming-Dateien anzeigen, so eignet sich dafür das Programm '''file'''. Um neben den traditionellen menschenlesbaren Zeichenketten auch noch den [:MIME-Typ:] zu bekommen, muss man die beiden folgenden Kommandozeilen-Befehle separat verwenden: {{{#!vorlage Befehl file -k /Pfad/zur/Zieldatei }}} wobei das `-k` für "keep-going" (weitersuchen nach dem ersten Treffer) steht, sowie {{{#!vorlage Befehl file -k --mime /Pfad/zur/Zieldatei }}} wobei das `-k` für "keep-going" (weitersuchen nach dem ersten Treffer) und das `--mime` für "Ausgabe des [:MIME-Typ:MIME-Types]" steht. Um die technischen und [:Metadaten:] von Video- und Audiodateien anzeigen zu können gibt es die Programme [:MediaInfo:], `ffprobe` (aus dem [:FFmpeg:]-Projekt) sowie [:Archiv/avprobe:] (aus dem Libav-Projekt). Sie erkennen zahlreiche Audio-, Video- und Container-Formate. Die Programme stehen als kommandozeilen-basierte Anwendungen zur Verfügung, [:MediaInfo:] optional auch mit einer [:GTK:]-basierten grafischen Benutzeroberfläche (GUI). = Programmkennung ändern = In einem Terminal[3] gelten die folgenden Befehls-Muster: wget: {{{#!vorlage Befehl wget -U "MSDL (compatible; LG NetCast.TV-2011) HbbTV/1.1.1 (; LGE; GLOBAL_PLAT3; 1.0; 1.0;)" http://example.com/folder/file }}} ## Quelle: http://www.mydealz.de/freebies/3sat-mediathek-zahlreiche-konzerte-coldplay-muse-depeche-mode-deep-purple-u-v-m-462439?page=3#comments ## wget.exe -U "MSDL (compatible; LG NetCast.TV-2011) HbbTV/1.1.1 (; LGE; GLOBAL_PLAT3; 1.0; 1.0;)" -c -i links.lst -o dl.log [#HLS-HTTP-Live-Stream-aufnehmen FFmpeg bzw. avconv]: {{{#!vorlage Befehl ffmpeg -headers $'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"\r\n' -i http://Adresse.m3u8 -codec: copy /Pfad/zur/Zieldatei.mp4 }}} Wobei das `\r\n` den Zeilenvorschub (auch CRLF genannt) darstellt. Ohne diesen würde der Befehl folgendermaßen lauten: {{{#!vorlage Befehl ffmpeg -headers 'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"' -i http://Adresse.m3u8 -codec: copy /Pfad/zur/Zieldatei.mp4 }}} ## Quelle: http://stackoverflow.com/questions/34525487/set-useragent-in-ffmpeg ## -headers 'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"' ## Also, you might need to include CRLF (Sonst kommt die Fehlermeldung `[http @ 02b23200] No trailing CRLF found in HTTP header.`): ## -headers $'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"\r\n' ## How to enable cookies in ffmpeg HLS: http://stackoverflow.com/questions/16105929/how-to-enable-cookies-in-ffmpeg-hls#16109670 Siehe auch den [:Archiv/Howto/Stream-Adressen_ermitteln/#Programmkennung-aendern: Programmkennung ändern]. = Links = == Intern == * [:Streaming:] {Übersicht} Grundlegendes zum Thema; Audio- und Videostreams mit Browser-Plugins abspielen * [:Streams_speichern:] {Übersicht} Übersichtsartikel * [:Archiv/Howto/Stream-Adressen ermitteln:] ## * [:Streams speichern/Beispiele:] * [:Internetradio:] {Übersicht} Übersichtsartikel * [:Internetradio_aufzeichnen:] * [:Internet-TV:] {Übersicht} Übersichtsartikel == Extern == * [wikipedia:Streaming Media:] * [wikipedia:Streaming-Produktion:] * [wikipedia:Video-on-Demand:] * [wikipedia:Audio-on-Demand:] * [wikipedia:Multimedia:] * [wikipedia:Codec:] * [wikipedia:Containerdatei:] #tag: Howto