# German po for gst-plugins-bad 1.4.1
# Copyright (C) 2007 Free Software Foundation, Inc.
# This file is distributed under the same license as the gst-plugins-bad package.
# Andre Klapper <ak-47@gmx.net>, 2008.
# Christian Kirbach <christian.kirbach@googlemail.com>, 2009, 2011, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.4.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2014-12-18 12:07+0100\n"
"PO-Revision-Date: 2014-08-31 19:37+0100\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"

msgid "Internal data stream error."
msgstr "Interner Datenstromfehler."

msgid "format wasn't negotiated before get function"
msgstr "das Format wurde vor der get-Funktion nicht ausgehandelt"

msgid "default GStreamer sound events audiosink"
msgstr "Voreingestellte GStreamer Tonereignis-Audioziel"

msgid ""
"GStreamer can play audio using any number of output elements. Some possible "
"choices are osssink, pulsesink and alsasink. The audiosink can be a partial "
"pipeline instea of just one element."
msgstr ""
"GStreamer kann Ton mit einer beliebigen Anzahl an Ausgabeelementen "
"wiedergeben. Einige Wahlmöglichkeiten sind »osssink«, »pulsesink« und "
"»alsasink«. Das Audioziel kann eine anteilige Weiterleitung anstelle eines "
"einzigen Elements sein."

msgid "description for default GStreamer sound events audiosink"
msgstr "Beschreibung des voreingestellten GStreamer Tonereignis-Audioziel"

msgid "Describes the selected audiosink element."
msgstr "Beschreibt das gewählte Audioziel-Element."

msgid "default GStreamer audiosink for Audio/Video Conferencing"
msgstr "Voreingestelltes GStreamer-Audioziel für Ton- und Videokonferenzen"

msgid ""
"description for default GStreamer audiosink for Audio/Video Conferencing"
msgstr ""
"Beschreibung des voreingestellten GStreamer-Audioziel für Ton- und "
"Videokonferenzen"

msgid "default GStreamer audiosink for Music and Movies"
msgstr "Voreingestelltes GStreamer-Audioziel für Musik und Filme"

msgid "description for default GStreamer audiosink for Music and Movies"
msgstr ""
"Beschreibung des voreingestellten GStreamer-Audioziel für Musik und Filme"

msgid "default GStreamer videosink"
msgstr "Voreingestelltes GStreamer-Videoziel"

msgid ""
"GStreamer can play video using any number of output elements. Some possible "
"choices are xvimagesink, ximagesink, sdlvideosink and aasink. The videosink "
"can be a partial pipeline instead of just one element."
msgstr ""
"GStreamer kann Video mit einer beliebigen Anzahl an Ausgabeelementen "
"wiedergeben. Einige Wahlmöglichkeiten sind »xvimagesink«, »ximagesink«, "
"»sdlvideosink« und »aasink«. Das Videoziel kann eine anteilige Weiterleitung "
"anstelle eines einzigen Elements sein."

msgid "description for default GStreamer videosink"
msgstr "Beschreibung des voreingestellten GStreamer-Videoziel"

msgid "Describes the selected videosink element."
msgstr "Beschreibt das gewählte Videoziel-Element."

msgid "default GStreamer audiosrc"
msgstr "Voreingestelltes GStreamer-audiosrc"

msgid ""
"GStreamer can record audio using any number of input elements. Some possible "
"choices are osssrc, pulsesrc and alsasrc. The audio source can be a partial "
"pipeline instead of just one element."
msgstr ""
"GStreamer kann Ton mit einer beliebigen Anzahl an Eingabeelementen "
"aufzeichnen. Einige Wahlmöglichkeiten sind »osssrc«, »pulsesrc« und "
"»alsasrc«. Die Audioquelle kann eine anteilige Weiterleitung anstelle eines "
"einzigen Elements sein."

msgid "description for default GStreamer audiosrc"
msgstr "Beschreibung des voreingestellten GStreamer-audiosrc"

msgid "Describes the selected audiosrc element."
msgstr "Beschreibt das gewählte audiosrc-Element."

msgid "default GStreamer videosrc"
msgstr "Voreingestelltes GStreamer-videosrc"

msgid ""
"GStreamer can record video from any number of input elements. Some possible "
"choices are v4lsrc, v4l2src and videotestsrc. The video source can be a "
"partial pipeline instead of just one element."
msgstr ""
"GStreamer kann Video mit einer beliebigen Anzahl an Eingabeelementen "
"aufzeichnen. Einige Wahlmöglichkeiten sind »v4lsrc«, »v4l2src« und "
"»videotestsrc«. Die Videoquelle kann eine anteilige Weiterleitung anstelle "
"eines einzigen Elements sein."

msgid "description for default GStreamer videosrc"
msgstr "Beschreibung des voreingestellten GStreamer-videosrc"

msgid "Describes the selected videosrc element."
msgstr "Beschreibt das gewählte videosrc-Element."

msgid "default GStreamer visualization"
msgstr "Voreingestellte GStreamer-Visualisierung"

msgid ""
"GStreamer can put visualization plugins in a pipeline to transform audio "
"streams in video frames. Some possible choices are goom, goom2k1 and "
"synaesthesia. The visualization plugin can be a partial pipeline instead of "
"just one element."
msgstr ""
"GStreamer kann Visualisierungs-Plugins in eine Weiterleitung integrieren, um "
"Audioströme in Videobilder umzuwandeln. Einige Wahlmöglichkeiten sind "
"»goom«, »goom2k1« und »synaesthesia«. Das Visualisierungs-Plugin kann eine "
"anteilige Weiterleitung anstelle eines einzigen Elements sein."

msgid "description for default GStreamer visualization"
msgstr "Beschreibung der voreingestellten GStreamer-Visualisierung"

msgid "Describes the selected visualization element."
msgstr "Beschreibt das gewählte Visualisierungselement."

msgid "Could not read title information for DVD."
msgstr "Die Titelinformationen der DVD konnten nicht gelesen werden."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Öffnen des DVD-Geräts »%s« schlug fehl."

msgid "Failed to set PGC based seeking."
msgstr "PGC-basiertes Suchen schlug fehl."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"DVD konnten nicht gelesen werden. Dies könnte daran liegen, dass die DVD "
"verschlüsselt ist und eine Bibliothek zur DVD-Entschlüsselung nicht "
"installiert ist."

msgid "Could not read DVD."
msgstr "DVD konnten nicht gelesen werden."

msgid "This file contains no playable streams."
msgstr "Diese Datei enthält keine abspielbaren Ströme."

msgid "Couldn't get the Manifest's URI"
msgstr "Adresse der Frachtliste konnte nicht ermittelt werden"

msgid "Failed to get fragment URL."
msgstr "Ermitteln der Fragment-Adresse schlug fehl."

msgid "Couldn't download fragments"
msgstr "Fragmente konnten nicht heruntergeladen werden"

msgid "Could not open sndfile stream for reading."
msgstr "sndfile-Datenstrom konnte nicht zum Lesen geöffnet werden."

msgid "Could not establish connection to sndio"
msgstr "Es konnte keine Verbindung zu sndio hergestellt werden"

msgid "Failed to query sndio capabilities"
msgstr "Abfragen der sndio-Fähigkeiten schlug fehl"

msgid "Could not configure sndio"
msgstr "sndio konnte nicht eingestellt werden"

msgid "Could not start sndio"
msgstr "sndio konnten nicht gestartet werden"

msgid "Internal data flow error."
msgstr "Interner Datenstromfehler."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"Die erzeugte Datei hat eine größere Vorlaufzeit als die Dauer ihres "
"Datenstroms"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr ""
"Das Element »%s« fehlt - überprüfen Sie Ihre Installation von GStreamer."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""
"Dateiort ist als NULL festgelegt. Bitte legen Sie einen gültigen Dateinamen "
"fest"

msgid "Subpicture format was not configured before data flow"
msgstr "Format des Unterbilds wurde nicht vor dem Datenfluss konfiguriert"

msgid "No file name specified for writing."
msgstr "Kein Dateiname zum Schreiben angegeben."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""
"Der gegebene Dateiname »%s« kann nicht in lokale Dateinamen-Kodierung "
"umgewandelt werden."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Datei »%s« konnte nicht zum Schreiben geöffnet werden."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Gerät »%s« existiert nicht."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Frontend-Gerät »%s« konnte nicht geöffnet werden."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr ""
"Einstellungen des Frontend-Geräts »%s« konnten nicht aufgerufen werden."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr ""
"Ausliefersystem des Frontend-Geräts »%s« kann nicht durchgezählt werden."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Datei »%s« konnte nicht zum Lesen geöffnet werden."

msgid "Couldn't find DVB channel configuration file"
msgstr "DVB Kanal-Konfigurationsdatei konnte nicht gefunden werden"

#, c-format
msgid "Couldn't load DVB channel configuration file: %s"
msgstr "DVB Kanal-Konfigurationsdatei konnte nicht geladen werden: %s"

msgid "DVB channel configuration file doesn't contain any channels"
msgstr "DVB Kanal-Konfigurationsdatei enthält keine Kanäle"

#, c-format
msgid "Couldn't find details for DVB channel %s"
msgstr "Details zu DVB-Kanal %s konnten nicht gefunden werden"

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Es konnte nicht in Datei »%s« geschrieben werden."

#~ msgid "Internal clock error."
#~ msgstr "Interner Zeitfehler."

#~ msgid "Could not open audio device for mixer control handling."
#~ msgstr "Audio-Gerät konnte nicht zum Regeln geöffnet werden."

#~ msgid ""
#~ "Could not open audio device for mixer control handling. This version of "
#~ "the Open Sound System is not supported by this element."
#~ msgstr ""
#~ "Audio-Gerät konnte nicht zum Regeln geöffnet werden. Diese Version des "
#~ "Open Sound System (OSS) wird nicht von diesem Element unterstützt."

#~ msgid "Volume"
#~ msgstr "Lautstärke"

#~ msgid "Master"
#~ msgstr "Hauptregler"

#~ msgid "Front"
#~ msgstr "Vorne"

#~ msgid "Rear"
#~ msgstr "Hinten"

#~ msgid "Headphones"
#~ msgstr "Kopfhörer"

#~ msgid "Center"
#~ msgstr "Mitte"

#~ msgid "LFE"
#~ msgstr "LFE"

#~ msgid "Surround"
#~ msgstr "Surround"

#~ msgid "Side"
#~ msgstr "Seite"

#~ msgid "Built-in Speaker"
#~ msgstr "Eingebauter Lautsprecher"

#~ msgid "AUX 1 Out"
#~ msgstr "AUX-Ausgang 1"

#~ msgid "AUX 2 Out"
#~ msgstr "AUX-Ausgang 2"

#~ msgid "AUX Out"
#~ msgstr "AUX-Ausgang"

#~ msgid "Bass"
#~ msgstr "Bass"

#~ msgid "Treble"
#~ msgstr "Höhen"

#~ msgid "3D Depth"
#~ msgstr "3D-Tiefe"

#~ msgid "3D Center"
#~ msgstr "3D-Mitte"

#~ msgid "3D Enhance"
#~ msgstr "3D-Erweiterung"

#~ msgid "Telephone"
#~ msgstr "Telefon"

#~ msgid "Microphone"
#~ msgstr "Mikrofon"

#~ msgid "Line Out"
#~ msgstr "Line-Ausgang"

#~ msgid "Line In"
#~ msgstr "Line-Eingang"

#~ msgid "Internal CD"
#~ msgstr "Interne CD"

#~ msgid "Video In"
#~ msgstr "Video-Eingang"

#~ msgid "AUX 1 In"
#~ msgstr "AUX-Eingang 1"

#~ msgid "AUX 2 In"
#~ msgstr "AUX-Eingang 2"

#~ msgid "AUX In"
#~ msgstr "AUX-Eingang"

#~ msgid "PCM"
#~ msgstr "PCM"

#~ msgid "Record Gain"
#~ msgstr "Aufnahmepegel"

#~ msgid "Output Gain"
#~ msgstr "Ausgabepegel"

#~ msgid "Microphone Boost"
#~ msgstr "Mikrofon-Boost"

#~ msgid "Loopback"
#~ msgstr "Schleife"

#~ msgid "Diagnostic"
#~ msgstr "Zur Diagnose"

#~ msgid "Bass Boost"
#~ msgstr "Bass-Boost"

#~ msgid "Playback Ports"
#~ msgstr "Wiedergabe-Ports"

#~ msgid "Input"
#~ msgstr "Eingang"

#~ msgid "Record Source"
#~ msgstr "Aufnahmequelle"

#~ msgid "Monitor Source"
#~ msgstr "Beobachtungsquelle"

#~ msgid "Keyboard Beep"
#~ msgstr "Tastaturpiepsen"

#~ msgid "Monitor"
#~ msgstr "Beobachtung"

#~ msgid "Simulate Stereo"
#~ msgstr "Stereo simulieren"

#~ msgid "Stereo"
#~ msgstr "Stereo"

#~ msgid "Surround Sound"
#~ msgstr "Surround-Ton"

#~ msgid "Microphone Gain"
#~ msgstr "Mikrofonpegel"

#~ msgid "Speaker Source"
#~ msgstr "Lautsprecherquelle"

#~ msgid "Microphone Source"
#~ msgstr "Mikrofonquelle"

#~ msgid "Jack"
#~ msgstr "Stecker"

#~ msgid "Center / LFE"
#~ msgstr "Mitte / LFE"

#~ msgid "Stereo Mix"
#~ msgstr "Stereo-Mischer"

#~ msgid "Mono Mix"
#~ msgstr "Mono-Mischer"

#~ msgid "Input Mix"
#~ msgstr "Aufnahme-Mischer"

#~ msgid "SPDIF In"
#~ msgstr "SPDIF-Eingang"

#~ msgid "SPDIF Out"
#~ msgstr "SPDIF-Ausgang"

#~ msgid "Microphone 1"
#~ msgstr "Mikrofon 1"

#~ msgid "Microphone 2"
#~ msgstr "Mikrofon 2"

#~ msgid "Digital Out"
#~ msgstr "Digitaler Ausgang"

#~ msgid "Digital In"
#~ msgstr "Digitaler Eingang"

#~ msgid "HDMI"
#~ msgstr "HDMI"

#~ msgid "Modem"
#~ msgstr "Modem"

#~ msgid "Handset"
#~ msgstr "Hörer"

#~ msgid "Other"
#~ msgstr "Andere"

#~ msgid "None"
#~ msgstr "Keine"

#~ msgid "On"
#~ msgstr "Ein"

#~ msgid "Off"
#~ msgstr "Aus"

#~ msgid "Mute"
#~ msgstr "Stumm"

#~ msgid "Fast"
#~ msgstr "Schnell"

#~ msgid "Very Low"
#~ msgstr "Sehr tief"

#~ msgid "Low"
#~ msgstr "Tief"

#~ msgid "Medium"
#~ msgstr "Mittel"

#~ msgid "High"
#~ msgstr "Hoch"

#~ msgid "Very High"
#~ msgstr "Sehr hoch"

#~ msgid "Production"
#~ msgstr "Produktion"

#~ msgid "Front Panel Microphone"
#~ msgstr "Mikrofon an der Front"

#~ msgid "Front Panel Line In"
#~ msgstr "Line-Eingang an der Front"

#~ msgid "Front Panel Headphones"
#~ msgstr "Kopfhörer an der Front"

#~ msgid "Front Panel Line Out"
#~ msgstr "Line-Ausgang an der Front"

#~ msgid "Green Connector"
#~ msgstr "Grüner Stecker"

#~ msgid "Pink Connector"
#~ msgstr "Rosa Stecker"

#~ msgid "Blue Connector"
#~ msgstr "Blauer Stecker"

#~ msgid "White Connector"
#~ msgstr "Weißer Stecker"

#~ msgid "Black Connector"
#~ msgstr "Schwarzer Stecker"

#~ msgid "Gray Connector"
#~ msgstr "Grauer Stecker"

#~ msgid "Orange Connector"
#~ msgstr "Oranger Stecker"

#~ msgid "Red Connector"
#~ msgstr "Roter Stecker"

#~ msgid "Yellow Connector"
#~ msgstr "Gelber Stecker"

#~ msgid "Green Front Panel Connector"
#~ msgstr "Grüner Frontstecker"

#~ msgid "Pink Front Panel Connector"
#~ msgstr "Rosa Frontstecker"

#~ msgid "Blue Front Panel Connector"
#~ msgstr "Blauer Frontstecker"

#~ msgid "White Front Panel Connector"
#~ msgstr "Weißer Frontstecker"

#~ msgid "Black Front Panel Connector"
#~ msgstr "Schwarzer Frontstecker"

#~ msgid "Gray Front Panel Connector"
#~ msgstr "Grauer Frontstecker"

#~ msgid "Orange Front Panel Connector"
#~ msgstr "Oranger Frontstecker"

#~ msgid "Red Front Panel Connector"
#~ msgstr "Roter Frontstecker"

#~ msgid "Yellow Front Panel Connector"
#~ msgstr "Gelber Frontstecker"

#~ msgid "Spread Output"
#~ msgstr "Verteilter Ausgang"
