# 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.6.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-06-09 11:22+0300\n"
"PO-Revision-Date: 2015-10-21 00:15+0200\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.8.5\n"

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

# OpenCV ist eine freie Programmbibliothek mit Algorithmen für die Bildverarbeitung und maschinelles Sehen.
msgid "OpenCV failed to load template image"
msgstr "OpenCV konnte nicht die Bildvorlage laden"

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 "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 "Digitalzoom element couldn't be created"
msgstr "Element für Digitalzoom konnte nicht angelegt werden"

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

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

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

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

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 "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 instead 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 teilweise Weiterleitung anstelle nur "
#~ "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 "Couldn't get the Manifest's URI"
#~ msgstr "Adresse der Frachtliste konnte nicht ermittelt 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"
