Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 25 von 43

Thema: VLC Stream Aufzeichnen und zwar Zeitgesteuert

  1. #1
    Duke Nukem Master Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Hallöle,

    vill ist das auch was für euch:
    https://www.deskmodder.de/blog/2016/...eams-aufnehmen

    ich beziehe mich auf dieses oben genannte Tutorial. Das Funzt irgendwie nicht bei mir, vill bei euch?!

    also, wenn ich per VLC den Record Button(roter knopp) drücke, nimt er auch anständig auf, das ist gut. ABER ich möchte gerne den vlc nutzen mittels Zeitgesteuerte aufname. Sprich mit der Aufgabenplanung. Das wäre extrem nice da ich dann net am Rechner sitzen muß und den Knopp drücken muss.

    Der Stream den ich aufzeichnen möchte ist ready und erreichbar, daran liegts nicht. Ich möchte den stream auch nicht convertieren wollen da meine geräte *.ts unterstützen. Das funzte auch alles wunderbar. Es ist eine m3u8 Liste mit mehrern Streams...

    Villeicht habt Ihr ja noch eine Idee?! Ich kämpfe mich da nun schon stundenlang rum


    MfG
    Geändert von DukeMan999 (18.03.19 um 18:20 Uhr)

  2. #2
    N.A.C.J.A.C. Avatar von alter_Bekannter
    Registriert seit
    Jul 2013
    Ort
    Midgard
    Beiträge
    4.522

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    https://wiki.videolan.org/VLC_command-line_help/

    Schon getestet?

    Edit, dein Guide scheint sich darauf zu bezeiehn, dann poste doch mal deinen Versuch. Da gabs ja ein paar Sachen zu ersetzen und somit einiges an Fehlerpotential.
    Wichtig: Warum die Installation von Win XP ein Linuxproblem ist.

    Autos töten keine Menschen, sie beschützen sie, vor Menschen mit kleineren Autos.

  3. #3
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Öhhh, inwiefern einige sachen zu ersetzen?! Ich hab den string genommen der da auf der seite stand 0o Ich hab mich auchen bissel durch den command line helper durchgelesen aber davon bekomm ich kopfaua ^^ also ich steig da nicht durch, ka.

    MfG

  4. #4
    N.A.C.J.A.C. Avatar von alter_Bekannter
    Registriert seit
    Jul 2013
    Ort
    Midgard
    Beiträge
    4.522

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Code (Windows-Registry):
    1. [URL des Livestreams] :sout=#duplicate{dst=file{dst=[Laufwerk-Buchstabe, z.B. C]:\\\\[Pfad]\\\\[Dateiname der Aufnahme].ts},dst=display} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep –run-time=[Dauer der Aufnahme in Sekunden, eventuell Bufferzeit mit einrechnen] vlc://quit

  5. #5
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Moin,

    ja die klammern hab ich natürlich mit dem Stream ,Pfad und Sec Dauer ersetzt, nur es geht nicht, es wurde mal eine datei angelegt aber das wars dann (0 Byte Datei). *schulterzuck* Gibts bei VLC net irgendwie ne Fehlerlog?!

    MfG

    --- [2019-03-19 19:41 CET] Automatisch zusammengeführter Beitrag ---

    Oder gibts da ne andere gute möglichkeit sowas zu bewerkstelligen?! Was nicht so kompliziert ist und einfach zu bedienen ist?!

    MfG

  6. #6

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Zitat Zitat von DukeMan999 Beitrag anzeigen
    Gibts bei VLC net irgendwie ne Fehlerlog?!
    Vermutlich ja:
    Code (Text):
    1. File logger (file)
    2.       --file-logging, --no-file-logging
    3.                                  Log to file
    4.                                  (default disabled)
    5.           Log all VLC messages to a text file.
    6.       --logfile=<string>         Log filename
    7.           Specify the log filename.
    8.       --logmode={text,html}      Log format
    9.           Specify the logging format.
    10.       --log-verbose={-1 (Default), 0 (Info), 1 (Error), 2 (Warning), 3 (Debug)}
    11.                                  Verbosity
    12.           Select the logging verbosity or default to use the same verbosity
    13.           given by --verbose.
    14.  
    Quelle: https://wiki.videolan.org/VLC_command-line_help/

    Also folgende Parameter anfügen:

    --file-logging --logfile="myLog.txt" --log-verbose={2} (Warning level)
    oder
    --file-logging --logfile="myLog.txt" --log-verbose={3} (Debug level)

    Am besten du testest das über die Kommandozeile - falls unklar, mit "Strg + C" solltest du den VLC Prozess dann auch stoppen/beenden können.
    Geändert von theSplit (20.03.19 um 06:56 Uhr) Grund: Quelle ergänzt, Hinweis Kommadozeile
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

  7. #7
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Moin theSplit,

    hab mal versucht die log anzuhängen aber das ist dabei rausgekommen:

    Klicke auf die Grafik für eine größere Ansicht 

Name:	Unbenannt.png 
Hits:	46 
Größe:	71,3 KB 
ID:	53682

    ich hab ka welches plugin da fehlen soll 0o die log selbst hatter nicht erstellt

    MfG

  8. #8

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    @DukeMan999: Versuch mal den Pfad aus dem Namen für die Log Datei --logfile="Dateiname.txt" zu nehmen, einfach ein "mylog.txt" - vermutlich mag er den Windows Pfad in der Option nicht?

    vlc --file-logging --logfile='mylog.txt'
    Funktioniert aber bei mir.
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

  9. #9
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    immernoch der gleiche fehler

  10. #10

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    In deiner Command Line Angabe ist glaube ich ein Fehler:

    "-runtime=120" muss sein "Minus minus run-time=120"

    Also "--run-time=120" - dann sollte es auch lüppen.
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

  11. #11
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Ok daran lags, neue Probs:

    der VLC öffnet sich kurz aber schließt sich, log machter auch:

    -- logger module started --
    main: VLC wird mit dem Standard-Interface ausgeführt. Benutzen Sie 'cvlc', um VLC ohne Interface zu verwenden.
    access error: HTTP 403 error
    http error: error: HTTP/1.1 403 Forbidden
    -- logger module stopped --

    aber irgendwie geht ja der stream bei mir wenn ich in der Wiedergabeliste den Stream anklicke 0o oder gibts da ne option bei vls den channel eigenständig zu wählen?

    MfG

  12. #12

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Nur zur Info, "--run-tme" ist in Sekunden(!) nicht Minuten, das heißt in 120 Sekunden stoppt die Aufnahme. Das nur nebenbei.

    403 ? Sollt eigentlich nicht sein.
    Du kannst zwei Sachen ergänzen:
    HTTP-Referrer + User-Agent

    Der Referrer ist die Seite von der du aus zugreifen würdest "in Theorie die Webseite über der die URL zugreifbar ist und der User-Agent, falls es einen Schutz gibt das man die URL nicht mit VLC sondern mit "Software Version XYZ Name Daten" öffnen würde....

    Code (Text):
    1. HTTPS input (access)
    2.       --http-continuous, --no-http-continuous
    3.                                  Continuous stream
    4.                                  (default disabled)
    5.           Keep reading a resource that keeps being updated.
    6.       --http-forward-cookies, --no-http-forward-cookies
    7.                                  Cookies forwarding
    8.                                  (default enabled)
    9.           Forward cookies across HTTP redirections.
    10.       --http-referrer=<string>   Referrer
    11.           Provide the referral URL, i.e. HTTP "Referer" (sic).
    12.       --http-user-agent=<string> User agent
    13.           Override the name and version of the application as provided to the
    14.           HTTP server, i.e. the HTTP "User-Agent". Name and version must be
    15.           separated by a forward slash, e.g. "FooBar/1.2.3".
    Eignet sich um Zugangsbeschränkungen zu überbrücken. Falls vorhanden. Muss aber nicht sein.

    Ohne die Quelle zu kennen, keine Ahnung was da gefordert wird... kann auch ein anderes Setting sein.

    --- [2019-03-20 09:59 CET] Automatisch zusammengeführter Beitrag ---

    Was auch sein könnte, dass du das falsche Protokoll nimmst? Also statt HTTP eher RTMP ?
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

  13. #13
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Ja das mit der run-time ist so gewollt, das dient ja zum Testen da es ja nicht über die CMD ginge, über das vlc programm mit dem roten button ist das kein Problem.

    Ok, ich hab eine Haupturl, die eingelesen wird bei vlc, danach sehe ich ja im fenster die ganzen channels... ach ich geb dir mal die url per pn

    MfG

  14. #14

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Okay, scheint auf IP Basis zu blocken und oder auch durch den User-Agent gleichermaßen.

    Versuch mal eine der URLs mit --http-user-agent="softwareName" , als extra in der Kommandozeile von VLC, zu öffnen.
    Geändert von theSplit (20.03.19 um 12:20 Uhr) Grund: : != =
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

  15. #15
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Hallo,

    ich schiebe das Thema nochmal höher, vill hat einer dennoch ein kleinen Tip für dieses Problem. Die bereits gestellten Antworten hier sind schon nicht schlecht haben mir aber auch nur etwas geholfen. Nur es geht nicht so recht mit VLC.

    Hätte ggf. jemand ein anderes tool um Streams Zeitgesteuert aufzuzeichnen? Sowas suche ich dann...

    MfG

  16. #16
    Zeitreisender

    Administrator

    Avatar von drfuture
    Registriert seit
    Jul 2013
    Ort
    in der Zukunft
    Beiträge
    6.096
    ngb:news Artikel
    17

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Kannst du die url zur Verfügung stellen oder ist diese zugangsbeschränkt? Bzw. Hättest sonst vielleicht ein vergleichbares Szenario zum Test?
    |_|D *`~{ Ich kenne deine Zukunft }~´* |_|D

  17. #17
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    drfuture @ ich hatte sie schon thesplit gegeben und er meinte ja:

    Okay, scheint auf IP Basis zu blocken und oder auch durch den User-Agent gleichermaßen.
    ich kannse dir ja per PN schicken.

    MfG

    --- [2019-08-14 22:08 CEST] Automatisch zusammengeführter Beitrag ---

    du hast ne PN bekommen? Schon gelesne?!

  18. #18

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    @DukeMan999: IP Blocking ist es wohl nicht, ich konnte auf den Stream zugreifen mit VLC, aber Client abhängig eventuell, so dass deswegen der 403 Forbidden gekommen ist.
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

  19. #19
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Huhu,

    hab dir gerade nochmal die liste gegeben, bzw. ist immernoch die alte ... wie gesagt such ich irgendwie ne möglichkeit das Zeitgesteuert aufzunehmen... zB. Abends wenn ich in der Kiste liege und ganz unanständig werd... da will ich dann nicht aufstehen wollen und den Rec button drücken...

    drfuture @ hast du meine PN nicht bekommen? 0o

    MfG

  20. #20
    Zeitreisender

    Administrator

    Avatar von drfuture
    Registriert seit
    Jul 2013
    Ort
    in der Zukunft
    Beiträge
    6.096
    ngb:news Artikel
    17

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Ja komme aber erst heute dazu mir das anzusehen thx
    |_|D *`~{ Ich kenne deine Zukunft }~´* |_|D

  21. #21

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Ich hab jetzt erst mal zu FFmpeg geraten. Die Software wird als Client auch akzeptiert. Jedenfalls bekommt man den Stream zu grabben. Ich glaube das "schwerste" daran ist eine zeitgesteuerte Aufnahme zu realisieren. Entweder mit Cronjob unter Linux oder mit der Windows Aufgabenplanung, die beide zeitgesteuert die Aufnahme für die Zeit von X für X Minuten (als FFmpeg Option) ansprechen.

    Die Zeit festlegen in der Taskplanung mit Auto"kill" (beenden) hat nur den Nachteil das man nicht sicher sein kann ob und wie viele Minuten Stream aufgezeichnet worden sind, daher die Idee das FFMpeg bemessen zu lassen.
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

  22. #22
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Also per Linux ist das kein Problem die streams aufzuzeichnen... kein ruckeln oder so vorhanden, auslastung ist schon etwas mehr aber egal...

    Nur das mit dem Zeitgesteuerten ist wieder so ne sache... und das ist mir auch wichtig, wenn ich ma nicht da bin...

    MfG

    --- [2019-08-15 22:16 CEST] Automatisch zusammengeführter Beitrag ---

    Ich hab da mal nenbissel gegooglet und bin statt auf dem cronjob auf den "at" befehl gestolpert, das sieht schon vielversprechent aus da dieser befehl einmalige ausführungen bereitstellt, da werd ich mich mal morgen nochmal dransetzen und schauen ob das geht:

    at [zeit [datum] kommando]

  23. #23

    Thumbs up Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    So, ich veröffentliche das mal, zensiert.

    Vielleicht hat noch jemand anderes einen nutzen dafür

    Was wird gebraucht:
    Linux mit "at" Paket, Python3, pyCurl und ffmpeg Installation.

    Das Skript wird aufgerufen, es heißt "rec.py" - das ist sehr wichtig.

    Was gesetzt werden muß:
    PLAYLIST_URL - das ist die Quelle für eine m3u8 mit Senderinformationen
    USER_AGENT - als welcher UserAgent soll sich ffmpeg und curl Authentifizieren

    Die m3u8 sollte so aufgebaut sein:
    Code (Text):
    1. #EXTINF:-1,SENDERNAME_DARSTELLUNG_IM_SKRIPT
    2. https://PFAD_ZUM_CAPTURE_STREAM.m3u8

    Spoiler: 

    Code (Python):
    1.  
    2. #!/usr/bin/env python3
    3.  
    4. PLAYLIST_URL = "https://yourPlaylistWithSources.m3u8"
    5. USER_AGENT = "Your custom useragent string, adapt."
    6.  
    7. import sys
    8. import time
    9. import glob
    10. import subprocess
    11. import os.path
    12. import os
    13.  
    14. import pycurl
    15.  
    16. USE_AT = True
    17. APP_FOLDER = os.getcwd()
    18.  
    19. PLAYLIST_FILE = "streamData.m3u8"
    20. PLAYLIST_DATA = ""
    21. PLAYLIST_CHANNELS = {}
    22. RECORDING_NAME = ""
    23. RECORDING_CHANNEL_NAME = ""
    24. RECORDING_CHANNEL_URL = ""
    25. RECORDING_TIME = 0
    26. RECORDING_DURATION = 0
    27.  
    28. def downloadPlaylist(downloadURL):
    29.     playlistFile = open(PLAYLIST_FILE, "wb")
    30.  
    31.     print('Starting download of URI: \'%s\'\n' % downloadURL)
    32.     c = pycurl.Curl()
    33.     c.setopt(pycurl.URL, downloadURL)
    34.     c.setopt(pycurl.USERAGENT, USER_AGENT)
    35.     c.setopt(pycurl.VERBOSE, False)
    36.     c.setopt(pycurl.ENCODING, 'utf-8')
    37.     c.setopt(pycurl.WRITEDATA, playlistFile)
    38.     c.setopt(pycurl.NOPROGRESS, True)
    39.     c.setopt(pycurl.TIMEOUT, 30)
    40.  
    41.     try:
    42.         c.perform()
    43.         print("\nSuccessfully downloaded playlist.\n")
    44.         playlistFile.close()
    45.         c.close()
    46.         return True
    47.     except Exception as error:
    48.         playlistFile.close()
    49.         c.close()
    50.         print("Encountered an error:")
    51.         raise error
    52.     return False
    53.  
    54.  
    55.  
    56. def getStreamSelection():
    57.     global PLAYLIST_CHANNELS, RECORDING_CHANNEL_NAME, RECORDING_CHANNEL_URL
    58.  
    59.     playlistFile = open(PLAYLIST_FILE, "r")
    60.     data = playlistFile.readlines()
    61.  
    62.     currentChannel = None
    63.     for line in data:
    64.         if line.startswith('#EXTINF:'):
    65.             currentChannel = line.split(',', 2)[1].rstrip()
    66.         elif (currentChannel != None and line.startswith('http://')):
    67.             PLAYLIST_CHANNELS[currentChannel] = line
    68.             currentChannel = None
    69.  
    70.     sortedChannels = sorted(PLAYLIST_CHANNELS.keys())
    71.  
    72.     print("\nChannel selection:")
    73.     for index, channel in enumerate(sortedChannels):
    74.         print("%2d - %s" % (index, channel))
    75.  
    76.     print("x - Exit")
    77.  
    78.     print("\n")
    79.  
    80.     while True:
    81.         channelNum = input("\nInput channel number for grabbing: ")
    82.         if channelNum.lower() == "x":
    83.             exit(0)
    84.         else:
    85.             try:
    86.                 RECORDING_CHANNEL_URL = PLAYLIST_CHANNELS[sortedChannels[int(channelNum)]].rstrip()
    87.                 RECORDING_CHANNEL_NAME = sortedChannels[int(channelNum)]
    88.  
    89.                 print("Selected recording channel: %s" % (sortedChannels[int(channelNum)]))
    90.                 isValidSelection = input('Is the channel correct Y/N? ')
    91.                 if isValidSelection.lower() == "y":
    92.                     return True
    93.                 else:
    94.                     continue
    95.  
    96.             except Exception:
    97.                 print('Wrong channel selection. Enter a channel number or "x" to exit.')
    98.                 continue
    99.             break
    100.  
    101.  
    102. if __name__ == "__main__":
    103.     if len(sys.argv) == 1:
    104.         if downloadPlaylist(PLAYLIST_URL):
    105.             print("Playlist succesfully downloaded.\n")
    106.  
    107.             if getStreamSelection():
    108.  
    109.                 print('\nIt\'s time to enter the date and time for the recording:')
    110.                 while True:
    111.                     while True:
    112.                         recordDate = input('\nEnter record date for recording, in format day.month.year, for example: 7.8.2019 or "x" to cancel, enter nothing for todays date.\n')
    113.                         if recordDate.lower() == 'x':
    114.                             print("Cancelled")
    115.                             exit(1)
    116.  
    117.                         elif len(recordDate) == 0:
    118.                             timeNow = time.gmtime()
    119.                             timestampNow = time.strptime("%d.%d.%d 00:00:00" %(timeNow.tm_mday, timeNow.tm_mon, timeNow.tm_year), "%d.%m.%Y %H:%M:%S")
    120.                             recordDay = timeNow.tm_mday
    121.                             recordMonth = timeNow.tm_mon
    122.                             recordYear = timeNow.tm_year
    123.  
    124.                             print("Record date: %02d.%02d.%d " %(timeNow.tm_mday, timeNow.tm_mon, timeNow.tm_year))
    125.                             if input("Is the record date correct Y/N ? ").lower() != 'y':
    126.                                 continue
    127.                             break
    128.  
    129.                         elif recordDate.count('.') == 2:
    130.                             recordDay, recordMonth, recordYear = map(int, recordDate.split('.', 3))
    131.                             timeNow = time.gmtime()
    132.                             timestampNow = time.strptime("%d.%d.%d 00:00:00" %(timeNow.tm_mday, timeNow.tm_mon, timeNow.tm_year), "%d.%m.%Y %H:%M:%S")
    133.  
    134.                             try:
    135.                                 timestampRecord = time.strptime("%d.%d.%d 00:00:00" %(recordDay, recordMonth, recordYear), "%d.%m.%Y %H:%M:%S")
    136.                             except ValueError:
    137.                                 print('Date input does not match, use day.month.year as: 7.8.2019')
    138.                                 continue
    139.  
    140.                             if time.mktime(timestampNow) > time.mktime(timestampRecord):
    141.                                 print("Date is in the past. Repeat input.")
    142.                                 continue
    143.                             else:
    144.                                 print("Record date: %02d.%02d.%d " %(recordDay, recordMonth, recordYear))
    145.  
    146.                             if input("Is the record date correct Y/N ? ").lower() != 'y':
    147.                                 continue
    148.                             break
    149.                         else:
    150.                             print("Invalid date input.")
    151.                             continue
    152.  
    153.                     while True:
    154.                         recordTime = input('\nEnter time to start recording, in format hour:minute, for example: 14:00 for 14 o\'clock, "x" to cancel\n')
    155.                         if recordTime.lower() == 'x':
    156.                             print("Cancelled")
    157.                             exit(1)
    158.                         elif recordTime.find(':') != -1:
    159.                             recordHour, recordMinute = map(int, recordTime.split(':', 2))
    160.                             print("Record time: %02d:%02d " %(recordHour, recordMinute))
    161.  
    162.                             timeNow = time.time()
    163.                             timestampRecord = time.strptime("%d.%d.%d %d:%d:00" %(recordDay, recordMonth, recordYear, recordHour, recordMinute), "%d.%m.%Y %H:%M:%S")
    164.  
    165.  
    166.                             if (timeNow > time.mktime(timestampRecord)):
    167.                                 print("Time is in the past. Repeat input.")
    168.                                 continue
    169.  
    170.                             if input("Is the record time correct, Y/N ? ").lower() != 'y':
    171.                                 continue
    172.  
    173.                             RECORDING_TIME = time.mktime(timestampRecord)
    174.                             break
    175.                         else:
    176.                             print("Invald time input.")
    177.                             continue
    178.  
    179.                     while True:
    180.                         recordDuration = input('\nEnter duration in minutes to record. For example 90 to capture 1 1/2 hours, "x" to cancel\n')
    181.                         if recordDuration.lower() == 'x':
    182.                             print("Cancelled")
    183.                             exit(1)
    184.                         elif int(recordDuration) < 0:
    185.                             print("Negative recording duration, enter 30 for 30 minutes.")
    186.                             continue
    187.  
    188.                         print("Record duration: %d minutes " %(int(recordDuration)))
    189.  
    190.                         if input("Is the record time correct, Y/N ? ").lower() != 'y':
    191.                             continue
    192.  
    193.                         RECORDING_DURATION = int(recordDuration)
    194.                         break
    195.  
    196.  
    197.                     while True:
    198.                         RECORDING_NAME = input('\nEnter name for the recording file. Enter "x" to cancel\n')
    199.                         if recordDuration.lower() == 'x':
    200.                             print("Cancelled")
    201.                             exit(1)
    202.  
    203.                         print("Record name: %s" % (RECORDING_NAME))
    204.                         if input("Is the record name correct, Y/N ? ").lower() != 'y':
    205.                             continue
    206.  
    207.                         break
    208.  
    209.  
    210.  
    211.                     print("\nWhat will be done?\nRecording channel \"%s\"." %(RECORDING_CHANNEL_NAME))
    212.                     print("On %s at %s o'clock for %d minutes.\nRecording to file: \"%s\"" %(time.strftime("%d.%m.%Y", time.localtime(RECORDING_TIME)), time.strftime("%H:%M:%S", time.localtime(RECORDING_TIME)), RECORDING_DURATION, RECORDING_NAME))
    213.  
    214.                     confirm = input("\nAre all information correct, Y/N? ")
    215.                     if confirm.lower() != 'y':
    216.                         continue
    217.  
    218.                     scheduleFileName = "%d.rec" %(time.time())
    219.                     with open(scheduleFileName, "w") as scheduleFile:
    220.                         scheduleFile.write("%d;%d;%s;%s\n" % (RECORDING_TIME, RECORDING_DURATION, RECORDING_CHANNEL_NAME, RECORDING_NAME))
    221.  
    222.                     if USE_AT:
    223.                         scheduleCommand = 'echo "python3 %s/rec.py -dl%s" | at -M %s' % (APP_FOLDER, scheduleFileName, time.strftime("%H:%M %d.%m.%Y", time.localtime(RECORDING_TIME)))
    224.                         subprocess.Popen(scheduleCommand, shell=True)
    225.                         exit(1)
    226.  
    227.                     print("Scheduled task.\nBye bye.")
    228.  
    229.                     break
    230.     else:
    231.         hasPlaylist = False
    232.         for opt in sys.argv:
    233.             if opt.startswith('-dl'):
    234.                 if downloadPlaylist(PLAYLIST_URL):
    235.                     hasPlaylist = True
    236.                     print("Playlist succesfully downloaded.\n")
    237.                 else:
    238.                     print("Error downloading playlist from \"%s\".\nExiting." %(PLAYLIST_URL))
    239.                     exit(1)
    240.  
    241.         for opt in sys.argv:
    242.             if opt.startswith("-dl"):
    243.                 with open(PLAYLIST_FILE, "r") as playlistFile:
    244.                     data = playlistFile.readlines()
    245.  
    246.                     currentChannel = None
    247.                     for line in data:
    248.                         if line.startswith('#EXTINF:'):
    249.                             currentChannel = line.split(',', 2)[1].rstrip()
    250.                         elif currentChannel != None and (line.startswith('http://') or line.startswith('https://')):
    251.                             PLAYLIST_CHANNELS[currentChannel] = line.rstrip()
    252.                             currentChannel = None
    253.  
    254.  
    255.                 scheduleFile = None
    256.  
    257.                 scheduleFileName = opt.replace('-dl', '', 1)
    258.                 if os.path.exists(scheduleFileName):
    259.                     scheduleData = None
    260.  
    261.                     with open(scheduleFileName, "r") as scheduleFile:
    262.                         scheduleData = scheduleFile.read().rstrip().split(';', 4)
    263.  
    264.                     if scheduleData != None:
    265.                         try:
    266.                             channelURL = PLAYLIST_CHANNELS[scheduleData[2]]
    267.                             commandString = "ffmpeg -user-agent \"%s\" -timeout 60 -i %s -t %d:%d:00 -vc:copy -o '%s.mkv'" %(USER_AGENT, channelURL, int(scheduleData[1]) / 60, int(scheduleData[1]) % 60, scheduleData[3].rstrip())
    268.                             subprocess.Popen(commandString, shell=True)
    269.                         except ValueError as error:
    270.                             print('No channel information found.')
    271.                             raise error
    272.  
    Für diesen Beitrag bedankt sich DukeMan999
    Geändert von theSplit (31.08.19 um 16:00 Uhr)
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

  24. #24
    Duke Nukem Master

    (Threadstarter)

    Avatar von DukeMan999
    Registriert seit
    Jul 2013
    Beiträge
    136

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    das mit dem timeout funzt nochnet soooo ganz, der im VLC geholter timeout ist ja im millisekunden bereich und der im ffmpeg ist viel zu hoch *schätze ich mal*

    MfG

  25. #25

    Re: VLC Stream Aufzeichnen und zwar Zeitgesteuert

    Was meinst du mit viel zu hoch, wie äußert sich das?

    Du kannst in der Zeile 267, die Variable "commandString", den Timeout Parameter entfernen, sieht dann so aus:

    Code (Python):
    1. commandString = "ffmpeg -user-agent \"%s\" -i %s -t %d:%d:00 -vc:copy -o '%s.mkv'"
    Also "-timeout 60" raus.
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ Bandcamp 500 +++ dwrox.net

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •