Hallo zusammen
Naja ich weiß nicht Recht ob ich den Thread hierher oder zu offtopic packen soll, da es ja nur indirekt mit autoit zu tun hat(ich hab schon vor dem Teil ein Problem)
Und zwar möchte ich die Video dateien von miener Festplatte von woanderst übers internet anschauen. Darum hab ich einen filezilla server installiert und meinen Rechner dafür eingestellt.
Bis hierhin funktioniert auch alles, dyndns und ports sind eingestellt und funktionieren garantiert einwandfrei.
Nun möchte ich einen film anschauen. Und ab hier wirds kritisch^^ Ich hab natürlich keine Lust, den Film erst komplett laden zu lassen, um ihn dann anzuschauen. Wie krieg ich das jetzt hin, dass er nen Teil lädt und ich ihn dann anschauen kann während der rest nachgeladen wird?
Im Internet hab ich jetzt 3 Stunden gegoogelt. Mehrfach den hinweis auf vlc gefunden und getestet. Wenn ich dort einen Netwerkstream öffne kommt folgende Fehlermeldung:
Ihre Eingabe konnte nicht geöffnet werden:
VLC kann die MRL 'ftp://name:passwort@dyndnsblabla.com/Filme/Bleach%20025.divx' nicht öffnen. Sehen Sie für Details im Fehlerprotokoll nach.
Selbe Fehlermeldungen mit anderen Datentypen
Habt ihr einen Lösungsvorschlag, gerne auch über eine andere Serversoftware?
film über ftp server streamen
-
- [ offen ]
-
Turbolocke -
18. Dezember 2011 um 18:40 -
Geschlossen -
Erledigt
-
-
Die Dateien die du da liegen hast sind nicht unbedingt für die Wiedergabe durch Inet optimiert.
Besser mit z.B. vlc die Datei als Stream aufbereiten und dann diesen beim Client entgegen nehmen.Bzw. das es mit FTP(ohne webdav etc) überhaupt klappen kann, unabhängig von den Dateien.
Gruß Dietmar
[autoit]Run("vlc -v http://" & GUICtrlRead($Cmb_Server) & ":3000/" & IniRead($Script_Dir & "config.ini", "Senderauswahl", GUICtrlRead($Cmb_Channel), "") & ' :http-caching=3000 --sout="#transcode{vcodec=h264,vb=' & _
[/autoit]
GUICtrlRead($Cmb_Bitrate_Video) & ",scale=" & GUICtrlRead($Cmb_Scale) & ",acodec=mp3,ab=" & GUICtrlRead($Cmb_Bitrate_Audio) & ',channels=1,samplerate=44100, venc=x264}:std{access=http,mux=ts,dst=0.0.0.0:1234}"')So habe ich einmal den internen Stream vom VDR nach außen weitergereicht, also für Inet runtergerechnet, ist mit externremux.sh zwar nicht nötig, klemmte aber leider.
Also einfach mal die parameter von vlc ansehen man kann dort imho auch eine Datei angeben.Spoiler anzeigen
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_icon=..\..\..\..\Autoit\Eigene Scripte\Dietmar\Charlie-Brown-2.ico
#AutoIt3Wrapper_outfile=Streamstarter.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Description=Mit VLC VDR-Streams auf einem Windows-PC bereitstellen. Kanal, Bitrate: V/A, Server können so komfortabler übergeben werden.
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs ----------------------------------------------------------------------------AutoIt Version: 3.3.6.1
[/autoit] [autoit][/autoit] [autoit]
Author: DietmarScript Function: Mit VLC VDR-Streams auf einem Windows-PC bereitstellen,
[/autoit] [autoit][/autoit] [autoit]
Kanal, Bitrate: V/A, Server können so komfortabler übergeben werden.#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
#include <EditConstants.au3>Dim $Inp_Server
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Dim $Cbx_Server[100]
Dim $Channels_Cmb_List = ""
Dim $Msg_VLC = "Bitte erst die vlc.exe auswählen."
Dim $Script_Dir = @ScriptDir
If StringRight($Script_Dir, 1) <> "\" Then $Script_Dir &= "\"
If Not FileExists($Script_Dir & "config.ini") Then FileInstall("C:\Users\Dietmar\Desktop\Streamstarter\config.ini", $Script_Dir & "config.ini")
Dim $Reg_Server = RegRead("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Server")
If StringInStr(IniRead($Script_Dir & "config.ini", "Allgemein", "VDR-Server", "VDR01"), $Reg_Server) = 0 Then $Reg_Server = "";~ ----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
;~ Gui ------------------------------------------------------------------------------------------------------------------
;~ ----------------------------------------------------------------------------------------------------------------------GUICreate("VLC Streamingstarter", 605, 330, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateGroup("", 40, 20, 380, 230)
GUICtrlCreateLabel("Senderauswahl:", 64, 44, 100, 25)
GUICtrlCreateLabel("Skalierung:", 64, 76, 100, 25)
GUICtrlCreateLabel("Bitrate Video", 64, 108, 100, 25)
GUICtrlCreateLabel("Bitrate Audio", 64, 140, 100, 25)
GUICtrlCreateLabel("VDR-Server", 64, 172, 100, 25)
GUICtrlCreateLabel("VLC Verzeichnis", 64, 204, 100, 25)$Cmb_Channel = GUICtrlCreateCombo("", 154, 40, 161, 25, $CBS_DROPDOWNLIST)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData(-1, _populate_channels_cmb(), RegRead("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Channel"))
$Cmb_Scale = GUICtrlCreateCombo("", 154, 72, 161, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, IniRead($Script_Dir & "config.ini", "Allgemein", "Skalierung", "0.5|0.6|0.75|1.0"), RegRead("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Scale"))
$Cmb_Bitrate_Video = GUICtrlCreateCombo("", 154, 104, 161, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, IniRead($Script_Dir & "config.ini", "Allgemein", "BitrateVideo", "300|350|400|500|600|700"), RegRead("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Bitrate Video"))
$Cmb_Bitrate_Audio = GUICtrlCreateCombo("", 154, 136, 161, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, IniRead($Script_Dir & "config.ini", "Allgemein", "BitrateAudio", "32|64|96|128"), RegRead("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Bitrate Audio"))
$Cmb_Server = GUICtrlCreateCombo("", 154, 168, 161, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, IniRead($Script_Dir & "config.ini", "Allgemein", "VDR-Server", "VDR01"), $Reg_Server)
$Cmb_Stream = GUICtrlCreateCombo("", 326, 168, 50, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "TS|PES", "TS")
$Btn_Server_Cfg = GUICtrlCreateButton("+", 380, 167, 25, 25)
$Inp_VLC_Dir = GUICtrlCreateInput("", 154, 200, 222, 25, $ES_READONLY)
GUICtrlSetData(-1, _check_vlc_dir())
$Btn_VLC_Dir = GUICtrlCreateButton("...", 380, 200, 25, 25, $WS_GROUP)
$Btn_Start = GUICtrlCreateButton("Starte Stream", 470, 40, 81, 49, $WS_GROUP)
$Btn_Stop = GUICtrlCreateButton("Stoppe Stream", 470, 104, 81, 49, $WS_GROUP)
$Btn_Local_Test = GUICtrlCreateButton("Local Test", 470, 168, 81, 49, $WS_GROUP)
$Btn_Save = GUICtrlCreateButton("Einstellungen (Regkey) speichern", 40, 268, 180, 25, $WS_GROUP)
$Btn_Clear = GUICtrlCreateButton("Einstellungen (Regkey) löschen", 240, 268, 180, 25, $WS_GROUP)
$Btn_Help = GUICtrlCreateButton("Hilfe", 440, 268, 115, 25, $WS_GROUP)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Btn_VLC_Dir
_choose_vlc_dir()
Case $Btn_Server_Cfg
_server_cfg()
Case $Btn_Start
_start()
Case $Btn_Stop
_stop()
Case $Btn_Local_Test
_local_test()
Case $Btn_Save
_save_settings()
Case $Btn_Clear
_clear_settings()
Case $Btn_Help
_help()
EndSwitch
WEnd;~ ----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
;~ Funktionen Gui 1 -----------------------------------------------------------------------------------------------------
;~ ----------------------------------------------------------------------------------------------------------------------Func _start()
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Cmb_Server) <> "" Then
FileChangeDir(GUICtrlRead($Inp_VLC_Dir))
Run("vlc -v http://" & GUICtrlRead($Cmb_Server) & ":3000/" & IniRead($Script_Dir & "config.ini", "Senderauswahl", GUICtrlRead($Cmb_Channel), "") & ' :http-caching=3000 --sout="#transcode{vcodec=h264,vb=' & _
GUICtrlRead($Cmb_Bitrate_Video) & ",scale=" & GUICtrlRead($Cmb_Scale) & ",acodec=mp3,ab=" & GUICtrlRead($Cmb_Bitrate_Audio) & ',channels=1,samplerate=44100, venc=x264}:std{access=http,mux=ts,dst=0.0.0.0:1234}"')
Else
MsgBox(4096, "Info:", "Bitte erst den VDR-Server auswählen.")
EndIf
EndFunc ;==>_startFunc _stop()
[/autoit] [autoit][/autoit] [autoit]
If WinExists("http://" & GUICtrlRead($Cmb_Server) & ":3000/", "") Then WinClose("http://" & GUICtrlRead($Cmb_Server) & ":3000/", "")
EndFunc ;==>_stopFunc _local_test()
[/autoit] [autoit][/autoit] [autoit]
FileChangeDir(GUICtrlRead($Inp_VLC_Dir))
Run("vlc http://127.0.0.1:1234")
EndFunc ;==>_local_testFunc _save_settings()
[/autoit] [autoit][/autoit] [autoit]
RegWrite("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Channel", "REG_SZ", GUICtrlRead($Cmb_Channel))
RegWrite("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Scale", "REG_SZ", GUICtrlRead($Cmb_Scale))
RegWrite("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Bitrate Video", "REG_SZ", GUICtrlRead($Cmb_Bitrate_Video))
RegWrite("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Bitrate Audio", "REG_SZ", GUICtrlRead($Cmb_Bitrate_Audio))
RegWrite("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Server", "REG_SZ", GUICtrlRead($Cmb_Server))
;~ MsgBox(0, "Info:", "Einstellungen gesichert")
EndFunc ;==>_save_settingsFunc _clear_settings()
[/autoit] [autoit][/autoit] [autoit]
RegDelete("HKEY_CURRENT_USER\Software\VLC-Streamingstarter")
;~ MsgBox(0, "Info:", "Einstellungen gelöscht")
EndFunc ;==>_clear_settingsFunc _help()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$PRG_Pos = WinGetPos("VLC Streamingstarter","")
SplashTextOn("Hilfe zu VLC-Streamstarter", "Was brauch ich noch, wofür ist das überhaupt..." & @CRLF & @CRLF & _
"Mit dem Programm ist man in der Lage, mit einem Windows-PC den Stream vom VDR als" & @CRLF & _
"h264 Stream im Internet bereitzustellen. Um schneller Bandbreite etc. ausprobieren zu können" & @CRLF & _
"und nicht lange in der Kommandozeile rumtippen zu müssen, habe ich das kleine Programm" & @CRLF & _
"geschrieben. Getestet mit gen2vdr V3 (Beta6) mit vdr-1.7.14 und VLC 1.05 (Windows7)" & @CRLF & @CRLF & _
"Benötigt wird u.a. ein VDR mit aktivierten Streamdev-Plugin und ein Windows PC mit VLC. " & @CRLF & _
"Am Router sollte der Port 1234 auf den Windows PC weitergeleitet werden (port forwarding)." & @CRLF & @CRLF & _
"Mit 1.048 kBit/s Upload funktioniert es bei 75% Bildskalierung und 600/32 zufriedenstellend. :)" & @CRLF & @CRLF & _
"VLC wird sofern installiert automatisch gefunden, ansonsten muss man die vlc.exe auswählen." & @CRLF & _
"Die VDR Server können mit dem Pluszeichen hinzugefügt werden, weitere Bitraten und Kanäle" & @CRLF & _
"können in der config.ini eingetragen werden. Diese wird neu generiert wenn nicht vorhanden." & @CRLF & _
"Die TS/PES Umschaltung ist (noch) nicht in Funktion sofern überhaupt benötigt." & @CRLF & @CRLF & _
'"Starte Stream/Stoppe Stream" de/aktiviert die Konvertierung und Streambereitstellung.' & @CRLF & _
'"Local Test" startet vlc und verbindet sich mit localhost zum Testen des Streams.' & @CRLF & @CRLF & _
"Das Programm ist rückstandsfrei, es wird nur die config.ini relativ zum Programm entpackt und" & @CRLF & _
"gegebenenfalls ein RegistryKey zum Speichern der Einstellungen erzeugt:" & @CRLF & @CRLF & _
'"HKEY_CURRENT_USER\Software\VLC-Streamingstarter"' & @CRLF & @CRLF & _
"Der Rest ist hoffentlich weitesgehend selbsterklärend. Viel Spass damit... Dietmar (N!ce)" & @CRLF & @CRLF & _
"P.S: Das Fenster zerstört sich vollautomatisch in 30 Sekunden(,das sollte zum Lesen reichen). ", 605, 470, $PRG_Pos[0], $PRG_Pos[1], 4, "", 10)
Sleep(30000)
SplashOff()
EndFunc ;==>_help;~ Hilfsfunktionen für Gui 1 --------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
;~ ----------------------------------------------------------------------------------------------------------------------Func _populate_channels_cmb()
[/autoit] [autoit][/autoit] [autoit]
$Channels_Freq = IniReadSection($Script_Dir & "config.ini", "Senderauswahl")For $cnt_channels = 1 To UBound($Channels_Freq) - 1
[/autoit] [autoit][/autoit] [autoit]
$Channels_Tmp = $Channels_Freq[$cnt_channels][0] & "|"
$Channels_Cmb_List = $Channels_Cmb_List & $Channels_Tmp
NextReturn (StringTrimRight($Channels_Cmb_List, 1))
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_populate_channels_cmbFunc _check_vlc_dir()
[/autoit] [autoit][/autoit] [autoit]
If @OSArch = "X86" Then
$VLC_Dir = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\VideoLAN\VLC", "InstallDir")
Else
$VLC_Dir = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VideoLAN\VLC", "InstallDir")
EndIfIf $VLC_Dir = "" Then
[/autoit] [autoit][/autoit] [autoit]
$VLC_Dir = $Msg_VLC
Else
If StringRight($VLC_Dir, 1) <> "\" Then $VLC_Dir &= "\"
EndIfReturn $VLC_Dir
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_check_vlc_dirFunc _choose_vlc_dir()
[/autoit] [autoit][/autoit] [autoit]
$VLC_Dir = FileOpenDialog($Msg_VLC, @ProgramFilesDir & "\", "Programm (vlc.exe)", 1 + 4)
If @error Then
MsgBox(4096, "", "vlc.exe wurde nicht ausgewählt.")
Else
If StringRight($VLC_Dir, 7) = "vlc.exe" Then
$VLC_Dir = StringTrimRight($VLC_Dir, 7)
GUICtrlSetData($Inp_VLC_Dir, $VLC_Dir)
EndIf
EndIfReturn $VLC_Dir
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_choose_vlc_dir;~ ----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
;~ Funktionen Gui 2 -----------------------------------------------------------------------------------------------------
;~ ----------------------------------------------------------------------------------------------------------------------Func _server_cfg() ;GUI für Serverkonfiguration
[/autoit] [autoit][/autoit] [autoit]
$PRG_Pos = WinGetPos("VLC Streamingstarter","")
GUICreate("Serverkonfiguration:", 605, 330, $PRG_Pos[0], $PRG_Pos[1])
GUICtrlCreateGroup("Hinterlegte Server:", 20, 20, 337, 287)
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
$Inp_Server = GUICtrlCreateInput("VDR01", 406, 32, 145, 20, $WS_GROUP)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
$Btn_Add_Server = GUICtrlCreateButton("Eingabe hinzufügen", 406, 60, 145, 33, $WS_GROUP)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
$Btn_Del_Server = GUICtrlCreateButton("Markierte löschen", 406, 130, 145, 33, $WS_GROUP)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
$Btn_Switch = GUICtrlCreateButton("Zurück", 438, 270, 73, 33, $WS_GROUP)
GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
GUISetState(@SW_SHOW)
GUISetState()
Opt("GUIOnEventMode", 1)
GUICtrlSetOnEvent($Btn_Add_Server, "_add_server")
GUICtrlSetOnEvent($Btn_Del_Server, "_del_server")
GUICtrlSetOnEvent($Btn_Switch, "_switch_gui")
_list_server()
EndFunc ;==>_server_cfgFunc _add_server()
[/autoit] [autoit][/autoit] [autoit]
$Server_Tmp = IniRead($Script_Dir & "config.ini", "Allgemein", "VDR-Server", "")
If $Server_Tmp = "" Then
IniWrite($Script_Dir & "config.ini", "Allgemein", "VDR-Server", GUICtrlRead($Inp_Server))
Else
IniWrite($Script_Dir & "config.ini", "Allgemein", "VDR-Server", $Server_Tmp & "|" & GUICtrlRead($Inp_Server))
EndIf
_list_server()
EndFunc ;==>_add_serverFunc _del_server()
[/autoit] [autoit][/autoit] [autoit]
$Server_Tmp = IniRead($Script_Dir & "config.ini", "Allgemein", "VDR-Server", "")
If $Server_Tmp = "" Then
MsgBox(4096, "Info:", "Keine Einträge zum Löschen vorhanden.")
Else
$Server = StringSplit($Server_Tmp, "|")
For $cnt_checkbox = 1 To UBound($Server) - 1
If GUICtrlRead($Cbx_Server[$cnt_checkbox]) = 1 Then _ArrayDelete($Server, $cnt_checkbox)
Next
EndIf
IniWrite($Script_Dir & "config.ini", "Allgemein", "VDR-Server", _ArrayToString($Server, "|", 1))
_switch_gui()
_server_cfg()
EndFunc ;==>_del_serverFunc _switch_gui()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE)
Opt("GUIOnEventMode", 0)
GUICtrlSetData($Cmb_Server, "")
GUICtrlSetData($Cmb_Server, IniRead($Script_Dir & "config.ini", "Allgemein", "VDR-Server", ""), RegRead("HKEY_CURRENT_USER\Software\VLC-Streamingstarter", "Default Server"))
EndFunc ;==>_switch_gui;~ Hilfsfunktionen für Gui 2 --------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
;~ ----------------------------------------------------------------------------------------------------------------------Func _list_server()
[/autoit] [autoit][/autoit] [autoit]
Dim $Cbx_Server[100]
Dim $checkboxh = 25$Server_Tmp = IniRead($Script_Dir & "config.ini", "Allgemein", "VDR-Server", "")
[/autoit] [autoit][/autoit] [autoit][/autoit]
If $Server_Tmp = "" Then
Return
Else
$Server = StringSplit($Server_Tmp, "|")
$new_size = 365 + (($Server[0] - 10) * 25)
If $new_size > 365 Then WinMove("Serverkonfiguration:", "", 192, 124, 610, $new_size)
For $cnt_server = 1 To (UBound($Server)) - 1
$checkboxh = $checkboxh + 25
$Cbx_Server[$cnt_server] = GUICtrlCreateCheckbox($Server[$cnt_server], 48, $checkboxh, 145, 17)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
Next
EndIf
Return
EndFunc ;==>_list_server -
Mhm hab ich das richtig verstanden ich muss mit deinem tool die dateien erst komplett alle umrechnen, bevor die überhaupt verwendbar sind? Wie schauts da aus bezüglich quali verlust?
-
Blödsinn...nicht mit meinem Tool aber das wäre ein Besipiel wie es mit VLC geht um einen Stream bereitzustellen
(in meinem Fall Stream entegegen nehmen und runtergerechnet bereitstellen).
Das Tool von mir setzt einen VDR vorraus incl. streamdev. Aber wie gesagt so weit ich weiß kann vlc es auch mit Dateien bewerkstelligen.Gruß Dietmar