GithubHelp home page GithubHelp logo

pavion / tvstreamrecord Goto Github PK

View Code? Open in Web Editor NEW
44.0 5.0 10.0 29.42 MB

Timed TV stream recording for Python

License: GNU General Public License v3.0

Python 13.35% CSS 67.22% JavaScript 13.74% Shell 0.47% Smarty 5.15% Dockerfile 0.07%

tvstreamrecord's Introduction

Image

tvstreamrecord

Table of contents

Introduction

This software is useful for setting recurrent recordings with your favorite streaming device (e.g. Fritz!Box Cable) or provider (e.g. MagentaTV). This software uses ffmpeg as a recording library and supports TV-Browser with the corresponding plugin.

Image

External links

Following links are provided for companies and projects mentioned in this readme:

Installation

Installation on Synology NAS

This package requires Python (preferably Python3), which is preinstalled with DSM7 and can be installed from your Package Center on DSM6 and below.

For DSM6 please open your Package Center, navigate to the Utilities tab, select any Python version and click Install. Python must not be started and will also create no icon in your Main Menu as it runs on demand only. You've done it, if it looks like this:

Image

In order to install this package please click on Settings button in your Package Center, navigate to the Package Sources tab and click the Add button. Please add our community package hub www.cphub.net as shown below (name may vary):

Image

Click OK to close this window and the one below and click Refresh button in your Package Center. After a short refresh time you should see a Community tab. Click it and scroll down to find the package tvstreamrecord as shown below. Click Install.

Image

You will now be prompted for creating a new share where your settings database and recorded video will be found. Default share tvstreamrecord is recommended. If already exists, this share will be reused. No data will be deleted or lost upon installation, deinstallation or upgrade of this package. If you wish to uninstall the package, you will have to delete the new share from Control Panel manually.

Please start the package if it's not running. You should now see a corresponding icon in your Main Menu. Click it and you are ready to move on and start configuring the package. Please note, that you can also bookmark any package page to have a quick access to it.

Installation in Docker

This tool now moves towards Docker, which will offer images based on master branch. Settings:

  • Internal port: 8030/TCP
  • Internal mount (changeable): /volume1/common

Latest image can be pulled with:

docker pull pavion/tvstreamrecord:latest

or run with all required arguments:

docker run --daemon -v /videos:/volume1/common --publish 8030:8030 --name tvstreamrecord pavion/tvstreamrecord

Running multiple instances with Docker

Some source devices provide but one stream per IP. In this case you can create multiple instances of tvstreamrecord with dedicated IPs. Assuming your LAN is 192.168.0.x with a gateway 192.168.0.1:

docker network create -d macvlan -o parent=eth0 --subnet 192.168.0.0/24 --gateway 192.168.0.1 mynet
docker run --daemon -v /videos/videos76:/volume1/common --publish 8030:8030 --network=mynet --ip=192.168.0.76 --name tsr76 pavion/tvstreamrecord
docker run --daemon -v /videos/videos77:/volume1/common --publish 8030:8030 --network=mynet --ip=192.168.0.77 --name tsr77 pavion/tvstreamrecord

As of now using the same database is not supported. You can use the same output path but should then rename your databases (see Advanced tab for more details).

Using Docker on Synology

  • Install official Docker package from Package Center and open it
  • Go to Image and select Add > Image from URL
  • Enter pavion/tvstreamrecord with no credentials and press Add
  • Wait until the installation is completed, select the new image and press Launch
  • Change container name and press Advanced Settings
  • Volume tab > Add folder > select your target folder then enter /volume1/common as mount path
  • Port settings tab > change local port from Auto to 8030 (or any other port)
  • Press Apply then Next then Apply to create and launch your container
  • You should now see a new running container which contains all you should need

Configuring this package

General configuration tab

This section covers the general configuration. Press Submit changes to accept or reload this page to undo all changes.

Image

Path for your recordings is a vital setting and should be set. If you're using a Docker or Synology DSM7 you should not change the default value. With other systems you can use any shared folder, which can be accessed with the root user (default: /volume1/common/). You can type your desired path in the corresponding box or use the Browse button to select one from the list.

File extension for the recorded stream will be added as a suffix to the filename. It can be vital for ffmpeg to detect your stream type.

Interface theme specifies the theme for the web interface to be used. Please select your favorite look and feel from the provided list.

Interface language. As of now, three languages are supported (English, German and Russian).

Interface locale adds local date/time support for several countries. Please select your desired locale or the default one.

Set remote access password can be used to provide an access password for from outside your local network. Local connections don't require a password. Warning: entering wrong password three times will block your current IP for at least 48 hours. To disable a password query again just type nothing in the corresponding fields. Please note that you might need to forward the package port (default: TCP/8030) in your router/firewall configuration. See its respective manual for more details.

EPG configuration tab

This section hosts all settings regarding an Electronic Program Guide (EPG). You'll need a valid data source to use this feature if the default one won't work for you. Please check the corresponding section of this readme for more details.

Image

Lengthen an EPG record will be used to prolong the record and avoid any small time shifts in TV charts. Please note that your system time will be used for recording and should be exact.

Enable XMLTV import for manual import or to be performed once per day at specified time.

Initial path for an XMLTV-Import can be used to import EPG (electronic program guide) from free XMLTV-compatible pages. Please read the corresponding section for more information.

Time shift for XMLTV data can be used to shift all imported EPG data by some hours (positive or negative value). That can be useful if importing EPG data from another time zone.

mc2xml full command line is for triggering a third party EPG generator/downloader tool. Note: mc2xml project is offline, this feature is deprecated. Please contact me if other tools can be used.

Time to perform daily EPG/XMLTV grab can be used to automatically refresh your EPG guide using your streams and/or your XMLTV provider. Please read the corresponding sections for more details.

Keywords for creating automatic records. If these keywords are found during EPG data import, corresponding records will be created automatically (max. 100 records per import). Keywords must be separated with comma and are not case sensitive. Please use as exact keywords as possible to prevent wrong record creation.

Display additional overlay can be toggled on to display real record duration overlay in EPG chart view even for channels without EPG data.

EPG list mode. Disabled for classic client side processing with greater network load, enabled for server side processing with greater server load but lesser traffic. Using client side processing you can reduce a maximal number of events to request to reduce your network throughput and server load.

Delete/reset all EPG data can be used to clear your database in case of EPG issues

FFMPEG support tab

This part offers a few settings regarding ffmpeg support. For advanced information and some usage examples please check the corresponding section of this readme.

Image

Full path to ffmpeg is required for this package to work but is not included with this software. On Synology DiskStation ffmpeg is preinstalled with Video and Media Stations. In most cases leaving the default value should be enough. With some protocols other versions may need to be used. In this case please check the corresponding section of this manual.

Use legacy recording method for http streams. Some older devices offering http protocol (such as NetStream) can be recorded without ffmpeg using plain stream copy. This method is deprecated and should be used only if required.

Additional output arguments for ffmpeg can be used to change your output, to encode or to decode your stream on the fly or to display additional output information from ffmpeg.

Enable proxy for ffmpeg enables proxy processing using following Proxy URL for ffmpeg.

Advanced tab

This section covers a few advanced settings, which shouldn't normally be changed.

Image

Full filename for tvstreamrecord database can be changed to move or set the database for tvstreamrecord. For Docker and DSM7 installation the database will be moved automatically to the new share, on other systems it will be kept in the same folder. Changing the path will try to use the database if found or move the database there if not exists.

Purge database records is used to automatically delete old EPG and records information after some time supplied

Server bind address. Default 0.0.0.0 will make your server available from any local address. Any other choices (e.g. 127.0.0.1) may be used to limit the access. Changing this setting requires package restart (stop and start using Package Center on Synology NAS).

Server port is the port the server runs on. Changing it also requires package restart.

Record name/path mask is used to name resulting files according to placeholders. It can also be used to create subfolders (for example: %channelid%/%date%-%title%). Following placeholders are supported:

  • %date%: classical time stamp placeholder YYYYMMDDHHMMSS
  • %title%: record title placeholder (mostly alphanumeric)
  • %fulltitle%: full record title placeholder with extended character support (UTF-8)
  • %year%, %month%, %day%: separate year, month and day placeholders YYYY, MM, DD
  • %channelid%: channel ID placeholder

Reset log should be used to clear your log file if it's becoming too big or on output issues.

Retry count for failed records will retry failed records X times, useful on unstable connections.

Do not restart ffmpeg if that much seconds remains to prevent creation of small files in case of premature termination. Some streams are buffering their data for some seconds so that a 50 seconds recording may still contain 60 seconds data, which is an expected behavior.

Enable postprocessing and its command can be enabled and used for advanced video/audio postprocessing or for indexing the resulting file. Default value will index the new file for using with Synology Video/Media Station. Placeholder %file% for full filename.

Enable concurrent recording is turned on by default. Please turn it off, if your stream provider supports just one stream per device. In this case all running records will be stopped as soon as a new one is to be started.

Alternative URL can be used, if you have two identical devices, supporting one stream at a time each. In this case alternative URL will be used, if primary URL is already in use. Concurrent recording should be enabled.

Password-free IPs are used to bypass password while accessing this package from a LAN network and can be extended with other static IPs.

Using this package

Here you will get a quick guide for the web interface. For configuration page please check the corresponding section of this manual.

Channels page

Here you can add, delete, import, enable or disable your channels. Disabled channels are not visible at Records or EPG pages. The Controls column shows (left to right): a switch for enabling or disabling a particular channel, a play icon to create a record with this channel and a gear icon to edit or delete this channel.

Image

As for now you have two ways to add channels. You can normally add a channel by providing its ID, name, URL and file extension or you can import a .m3u playlist provided within your device as long as it has following syntax:

#EXTM3U
#EXTINF:0,channel name 1
http://10.0.0.1/stream/tunerequest000000000000000000000000000000000000000000000000
#EXTINF:0,channel name 2
http://10.0.0.1/stream/tunerequest000000000000000000000000000000000000000000000001

Image Image

Please note, that adding a new playlist without appending will erase all old channels and records as well, due to the possibility of ID conflict!

You can add/change a resulting file extension while creating new channels. With ffmpeg, file extension may be crucial for determining your output type. While importing from .m3u you can't specify any file extension. In case of empty extension the default one from configuration will be used automatically.

Once added, you can edit and move your channels. To do this, please click on the gear symbol at the right of the table row. You're now able to edit the channel information as well as to assign a new ID. Using an existing ID will insert the current record before this ID and re-enumerate the others.

You can also delete your channel from here. Please note, that deleting a channel will also delete all associated records.

Records page

Here you can schedule your records, turn them on and off, edit or delete them. You can also schedule recurrent records if weekdays are provided. Unlike 'normal' records, which are done after completion, here the next runtime will be automatically calculated and set.

The Controls column shows (left to right): a progress bar for running records, a switch for enabling or disabling a particular record and a gear icon to edit or delete the record.

Image Image

EPG chart page

If available, your Electronic Program Guide (EPG) is presented here in a chart form for a current or a selected date. You can disable a channel by clicking on an X icon next to its name. You can highlight events with specified keyword. You can also manually trigger EPG import from here (see the corresponding section of this manual for more information).

By clicking on an event you can either Record it, which will automatically create a record and redirect you to the Records tab, or you can Edit&Record your event, which will allow you to change record parameters and will not redirect you away.

Image

You can also use the zoom slider to enlarge the view or Flip chart to switch to the vertical view:

Image

EPG list page

If available, your Electronic Program Guide (EPG) is presented here in a table form. You can search within this table and you can record your event (or stop records) directly as well. You can also manually trigger EPG import from here (see the corresponding section of this manual for more information).

Image

You can also bookmark your favorite searches by adding search keyword to your current URL, for example:

127.0.0.1:8030/epglist&beach

will always display events containing the keyword beach.

Log page

Here you can see server side debug information. Please check this page if you encounter a behavior you can't explain. Please also consult the corresponding section of this manual.

Image

Mobile view

This is a mobile version of your record page. Here you can access most of the features of the desktop version including recording from EPG (if available). You can also create a shortcut icon on the home screen of your mobile device.

ImageImageImage

You will be automatically redirected to this view from the page root if you are using a handheld device. You can also access this view with a corresponding icon in the top left corner of the desktop version menu. Please note, that you must have some channels created to make use of this view. For that please check the corresponding section of this manual.

Further information

FFMPEG support

This section covers most issues with ffmpeg streams. I ask to understand, that ffmpeg is neither part of this package nor can ffmpeg developers provide support for this package. This package simply provides a front end for this console based tool. All the advanced settings in this section may also require advanced skills in dealing with console applications.

On Synology systems ffmpeg is preinstalled and is normally called with ffmpeg only, which is the default setting. If it doesn't work, you may need to install the corresponding package and provide the full path for VideoStation: /volume1/@appstore/VideoStation/bin/ffmpeg.

Even if your system has ffmpeg installed, it may not support your stream type or protocol (e.g. Synology ffmpeg has no support for https). If you want to be sure, please visit http://ffmpeg.org/, download and extract the corresponding release and provide its full path in the configuration. Thus you can be sure to have the latest and fullest release available. For example, on x64 based Synology and other Linux systems you can use the file ffmpeg-release-amd64-static.tar.xz from https://johnvansickle.com/ffmpeg/.

Global rule is: if you can play your stream with your favorite media player, you should be able to record it with ffmpeg. If you have a terminal access to your system, you can do following steps in your terminal. Make sure that you have ffmpeg properly installed by typing and running:

> ffmpeg 

from the console. You should see following output (only first line is displayed here):

Image

Check your stream foo://10.0.0.1:1000 with a following command:

> ffmpeg -i foo://10.0.0.1:1000 -t 30 -acodec copy -vcodec copy out.mpg

This tells ffmpeg to save your stream (-i streamaddress) for a duration of (-t xx) seconds by copying audio (-acodec copy) and video (-vcodec copy) into an output file (out.mpg). If it works, you should see a lot of output text for the duration of 30 seconds and be able to locate the generated file in your current folder.

Image

Otherwise you should check for any errors in console output. Make sure that you've provided a correct extension for your stream (.ts, .mpg, .avi, .mk4, .mkv and such): ffmpeg uses this to determine output file type. Look into ffmpeg documentation and experiment with your stream until you get your file.

If it works fine in your console, you can now create a channel with some name, your stream address and your file extension and schedule some records.

If you want to provide additional output arguments for ffmpeg, you can enter them at the Config page. First arguments are always -i inputstreamname, -t recorddurationand last argument is outputstreamname.extension (you will see all used arguments at the Log page after each ffmpeg start).

Common parameters and their meaning:

  • -f fmt forces ffmpeg to use specified format (e.g. h264, mpg, mkv, avi)
  • -loglevel quiet/fatal/error can be used to provide (or restrict) additional log output
  • -map 0:v -map 0:a can be used to force all tracks (video and audio) of a stream to be recorded. Per default only one audio track might be recorded.
  • -ignore_unknown ignores invalid stream parts (reported to be required for Fritz Box 6490 Cable)

EPG import

You can use most of third party sources providing EPG data in XML format (XMLTV). If you have a free XMLTV provider from your region, add its address in Config > EPG. Now you should be able to import EPG by pressing the corresponding button or by enabling the automatic synchronization. Full synchronization takes some time, please check the log file for the progress or error status.

You can use XML files generated with other software. Just use full file path (e.g. /tmp/epgdata.xml) instead.

You can use a third party EPG desktop software TV-Browser. With a corresponding plug-in this package can be controlled remotely. Please visit TSRPlugin page for more information.

In any case your channel names should match with those provided by your EPG provider (e.g. please use 'CNN' and not '1 - CNN' or 'epg.cnn.com' or 'My favorite news channel'). In TV-Browser you can see the channel names directly. When using XMLTV data you can find them by opening your provider's URL in a common web browser and searching for corresponding <display-name> tag, for example:

<display-name lang="en">CNN</display-name>

If you are using third party data, please consider to support them and their respective communities and to spread the word.

License and disclaimer

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses. Please note that the recording, keeping or distribution of streams may be forbidden by the law of your country or your local content provider. Author takes no responsibility for any records taken or used. If you are using XMLTV source for your EPG guide, please make sure, that your source provider allows accessing his data with third party applications.

Following packages and modules are licensed under their respective licenses.

Some code snippets are taken from or inspired by several community help pages, tutorials, code samples and so on. I want to thank all the developers and contributors, whose work helped me so far.

Troubleshooting

If you encounter an undefined error, please check the package log file. You can access it either by using the package frontend and navigating to the Log tab or by opening the 'log.txt' file. On Synology systems you can also open a Package Center, navigate to Installed tab, click on tvstreamrecord and select View log. The newest entry may give you a clue what went wrong. If it doesn't help, please contact me. If you encounter any issue with EPG or Log pages, you can reset both at the Config page.

Modifying the package

Although this package is open sourced, author takes no responsibility for any damage resulting from altering or updating the source code of this package. If you're using a Docker or Synology repository, any changes you've made will be overwritten with a new version of this package.

The best way to get this package altered is to contact author and provide your solution or addition. If you have a shell access to your DiskStation and you know what you do, you can still customize this package:

  • You can add further jQueryUI themes by copying them into the css folder of this package
  • You can add or change locales in the js\i18n folder
  • You can add or change languages in the lang folder (see supplied dummy for more details)

If made correctly, you must be able to select your addition with reopening or refreshing a Config page. You can also send me your own translation to be included in following versions.

Contact and support information

If you have any questions, issues, ideas or feedback, feel free to contact me using one of the following ways:

Feedback appreciated.

tvstreamrecord's People

Contributors

0xhade avatar danielk117 avatar pavion avatar thommy-76 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tvstreamrecord's Issues

Konfiguration woanders speichern (docker)

Hallo,

ich habe das ganze im Docker laufen und Probleme mit der settings.db diese zu speichern.
Es wäre super wenn man den Pfad zum speichern der Konfiguration ändern/überschreiben könnte.

Beispiel wäre dass ich sie in/config/settings.db legen könnte ...

VG axute

"Gear Icon" not working

Hi,
I just bought a eyetv netstream and installed tvstreamrecord.

First of all manual recording and scedulled recording works fine. However the "gear icon" does not seem to work properly.

My Setup:
DS413 - 4.3
Chrome 32

Channels Tab:

  • clicking on the gear icon next to a channel does not do anything

Recordings Tab

  • clicking on the gear icon of a scheduled recording opens up the "new recording" dialog rather than enabling to edit the selected recording

CherryPy library is missing the definition of `is_closable_iterator` in 1.2.0

It looks like the shipped cherrypy library is missing at least the is_closeable_iterator definition.

Error:

Starting tvstreamrecord v.1.2.0 with Python 3.4
Logging output initialized
Initializing database... 
Initializing config...
Port changes saved, new port: 80, please restart the software
Checking internationalization...
Initializing records...
Record: Thread timer for 'Kalkofes Mattscheibe Rekalked - Mediensatire von und mit Oliver Kalkofe' started for 29239 seconds
Initializing EPG import thread...
EPG Thread timer waiting till 05:50 (57559 seconds)
Starting server on: 10.30.0.4:80
Traceback (most recent call last):
  File "tvstreamrecord.py", line 1163, in <module>
    run(host=config.cfg_server_bind_address, port=config.cfg_server_port, server=CherryPyServer, quiet=True)
  File "/opt/tvstreamrecord/bottle.py", line 3026, in run
    server.run(app)
  File "/opt/tvstreamrecord/bottle.py", line 2666, in run
    from cherrypy import wsgiserver
  File "/opt/tvstreamrecord/cherrypy/__init__.py", line 76, in <module>
    from cherrypy import _cptree
  File "/opt/tvstreamrecord/cherrypy/_cptree.py", line 7, in <module>
    from cherrypy import _cpconfig, _cplogging, _cprequest, _cpwsgi, tools
  File "/opt/tvstreamrecord/cherrypy/_cpwsgi.py", line 16, in <module>
    from cherrypy.lib import is_closable_iterator
ImportError: cannot import name 'is_closable_iterator'

Missing code in the shipped __init.py__ (diffed against cherrypy 3.8.1)

def is_iterator(obj):
    '''Returns a boolean indicating if the object provided implements
     the iterator protocol (i.e. like a generator). This will return
     false for objects which iterable, but not iterators themselves.'''
    from types import GeneratorType
    if isinstance(obj, GeneratorType):
        return True
    elif not hasattr(obj, '__iter__'):
        return False
    else:
        # Types which implement the protocol must return themselves when
        # invoking 'iter' upon them.
        return iter(obj) is obj

def is_closable_iterator(obj):

    # Not an iterator.
    if not is_iterator(obj):
        return False

    # A generator - the easiest thing to deal with.
    import inspect
    if inspect.isgenerator(obj):
        return True

    # A custom iterator. Look for a close method...
    if not (hasattr(obj, 'close') and callable(obj.close)):
        return False

    #  ... which doesn't require any arguments.
    try:
        inspect.getcallargs(obj.close)
    except TypeError:
        return False
    else:
        return True

Zeitzone im EPG

Hallo,

nach der Umstellung bei XMLTV vor ein paar Wochen sind die Uhrzeiten in den XML-Dateien nicht mehr in Lokalzeit, sondern in UTC.
Daher musste ich bei "Zeitverschiebung" in den EPG-Einstellungen eine Verschiebung von +2 Stunden einstellen. Jetzt mit der Zeitumstellung musste ich auf +1 Stunden zurückstellen. Dabei haben sich die Einträge nicht verändert, die Tagesschau kommt also um 21 Uhr statt um 20 Uhr.

Wäre es möglich die Zeitzone der NAS abzugreifen und eine automatische Verschiebung der EPG-Einträge von der UTC-Zone in die lokale Zone zu machen?
Und wäre es zudem möglich, bereits importierte EPG-Einträge beim Verändern der Zeitverschiebung mitzuverschieben?

MfG,
haDe

add -ignore_unknown parameter for ffmpeg call

Hi first of all thank you for the great project! However with my Fritz Box 6490 Cable tvsd.m3u I get an error on the console saying:

Cannot map stream #0:4 - unsupported type.
If you want unsupported types ignored instead of failing, please use the -ignore_unknown option
If you want them copied, please use -copy_unknown

So I tested the -ignore_unknown parameter with manually launching ffmpeg like this:
ffmpeg -i "rtsp://192.168.0.1:554/?avm=1&freq=402&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,105,981,980,982,984,986,987,988" -map 0 -ignore_unknown -c copy test.ts

And everything is working fine playing back the test.ts file with VLC media player :) So I guess Fritz Box users need the -ignore_unknown parameter for their tvsd m3u stream playlist (at least for Vodafone)

Cannot set a password

When I try to set a remote access password via the configuration, nothing happens on submit (dialog stays open).

I get the following error in the logs:

Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/bottle.py", line 868, in _handle return route.call(**args) File "/usr/lib/python3.8/site-packages/bottle.py", line 1748, in wrapper rv = callback(*a, **ka) File "tvstreamrecord.py", line 164, in setPass pass_new_1 = hashlib.sha224(request.forms.pass_new_1).hexdigest() if request.forms.pass_new_1 else ""TypeError: Unicode-objects must be encoded before hashing

I'm using the latest docker image and the password contains no special characters.

EPG Chart - mach ich was falsch?

Option Wert
EPG Aufnahme verlängern um (vor und nach) [Minuten] 3
XMLTV-Import einschalten an
Suchpfad für XMLTV-Import http://xmltv.spaetfruehstuecken.org/xmltv/datalist.xml.gz
Zeitverschiebung für die XMLTV-Daten (in Stunden) 0
mc2xml komplette Befehlszeile (nur x86 CPUs, Vorgabe: leer) *
Import aus Streams einschalten ** aus
Maximale Importdauer pro Sender [Sekunden] (Vorgabe '60') ** 60
Uhrzeit für täglichen automatischen Import (hh:mm Format, 24h-basiert, Vorgabe '0' zum Ausschalten) 16:00
EPG-Listenmodus. Ausschalten für die Client-seitige Verarbeitung (mehr Netzwerklast), einschalten für die Server-seitige Verarbeitung (mehr Serverauslastung) an
Nur Client-seitig: maximale Anzahl von Programmen, die vom Server angefragt werden (frühere zuerst), hilft beim langsamen Seitenaufbau 5000

Das sind die Einstellungen für EPG

Als Meldungen in der Konsole bekomme ich folgendes
EPG grabbing started on Disney Channel for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on �C�OMEDY �C�ENTRAL�/VIVA� for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on DMAX for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on kabel eins for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on Nickelodeon for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on ProSieben MAXX for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on ProSieben for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on RTL II for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on RTL NITRO for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on RTL for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on SAT.1 for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on SUPER RTL for 60 seconds Supplied stream could not be found or opened, aborting... EPG grabbing started on VOX for 60 seconds Supplied stream could not be found or opened, aborting... tvstreamrecord v.1.3.0 / XMLTV import started XMLTV: reading URL http://xmltv.spaetfruehstuecken.org/xmltv/datalist.xml.gz with 144820 bytes XMLTV import completed with 0 entries

Synology hat DSM 7.0 gestartet

Liebe Community,
ich habe schon am Alpha-Test der neuen Synology-Software teilgenommen und bin auch eigentlich ganz optimistisch, aber ich vermisse so richtig schmerzlich mein geliebtes tvstreamrecord.
Wird es eine Version geben, die auch auf der Version 7 von Synologys DSM läuft?
Vielen Dank!
Solluh

1 hour delay in recording and multiple files

Hi @Pavion

Thanks again for your support in #55

As mentioned i am dealing with some other strange issues:

  1. If i schedule a recording it starts exactly 1 hour after the time set. The date on my device is set correctly. I checked it with the "date" command under linux/debian. I've also tried to change "Date/time locale" under "config - general" without any changes.

  2. I started a test recording for 10 Minutes and it will result in 3 or 4 files on disk. The Log says something like this:

2022-02-14 17:40:00.004 FFMPEG (http) record ‘test-10min' called with: 2022-02-14 17:40:00.004 ['ffmpeg', '-i', 'http://url.m3u8', '-y', '-t', '599', '-loglevel', 'fatal', '-map', '0', '-c', 'copy', '/volume1/common/20220214174000 - test_10min.mkv'] 2022-02-14 17:49:22.573 FFMPEG record 'test-10min' ended 2022-02-14 17:49:22.574 Something went wrong with 'test-10min', retry 1/99 in 10 seconds 2022-02-14 17:49:32.585 FFMPEG (http) record 'test-10min' called with: 2022-02-14 17:49:32.586 ['ffmpeg', '-i', 'http://url.m3u8', '-y', '-t', '27', '-loglevel', 'fatal', '-map', '0', '-c', 'copy', '/volume1/common/20220214174932 - test_10min.mkv'] 2022-02-14 17:49:34.123 FFMPEG record 'test-10min' ended 2022-02-14 17:49:34.124 Something went wrong with 'test-10min', retry 2/99 in 10 seconds 2022-02-14 17:49:44.136 FFMPEG (http) record 'test-10min' called with: 2022-02-14 17:49:44.136 ['ffmpeg', '-i', 'http://url.m3u8', '-y', '-t', '15', '-loglevel', 'fatal', '-map', '0', '-c', 'copy', '/volume1/common/20220214174944 - test_10min.mkv'] 2022-02-14 17:49:46.901 FFMPEG record 'test-10min' ended 2022-02-14 17:49:46.902 Something went wrong with 'test-10min', retry 3/99 in 10 seconds

Can you explain what "Something went wrong with..." exactly means?

Thank you!

Doesn't reload xmltv-data after cleanup

After using Delete/reset all EPG data the xmltv-data isn't reloaded. Mentioned in the log: XMLTV: no new data / unknown error, try again later, but the files epglist stays empty.

The Delete/reset all EPG data-action should reset the import-timestamps / change-detection, too. To force a clean reload of the epg-data.

error message

NPO3_NL.ts could not be created. Please check your settings. Description: ('http error', 401, 'Unauthorized', ) pls assist

Provide optical feedback for failed records (e.g. bar color)

https://www.synology-forum.de/showthread.html?37898-tvstreamrecord-Aufzeichnen-von-HTTP-Streams&p=786569&viewfull=1#post786569

Leider gibt im "Fortschrittsbalken" und auch sonst keine Unterscheidung, ob eine Sendung auch vollständig aufgezeichnet werden konnte oder nicht.
Hier würde ich mir wünschen, dass abgebrochene/fehlerhafte Sendungen (rot?) markiert würden. (Ansonsten "merkt" man erst, wenn man die aufgezeichnete Datei
ansehen will - oder über das logfile - dass etwas schief ging.)

Recording on DSM7 on Synology DS415play does not run

Hi, I just upgraded my DS415play to DSM 7 and re-installed tvstreamrecord. Trying to do a recording with default parameters, I am getting this log:

2021-06-30 19:24:34 OUT Using Python (python3)...
2021-06-30 19:24:38.224 Starting tvstreamrecord v.1.6.2 with Python 3.8
2021-06-30 19:24:38.225 Logging output initialized
2021-06-30 19:24:38.405 Initializing database...
2021-06-30 19:24:38.432 Using portable database at '/volume1/tvstreamrecord/tvstreamrecord.db'
2021-06-30 19:24:38.503 Initializing config...
2021-06-30 19:24:38.547 Checking internationalization...
2021-06-30 19:24:38.548 Initializing records...
2021-06-30 19:24:38.571 Initializing EPG import thread...
2021-06-30 19:24:38.572 Starting server on: 0.0.0.0:8030
2021-06-30 19:27:23.518 Record: Thread timer for 'test' started for 36 seconds
2021-06-30 19:28:00.012 FFMPEG (http) record 'test' called with:
2021-06-30 19:28:00.013 ['ffmpeg', '-i', 'http://192.168.111.27/?src=4&freq=12188&pol=h&msys=dvbs&sr=27500&sid=12003&pmt=44&pids=0,44,163,104,106', '-y', '-t', '239', '-loglevel', 'fatal', '-map', '0', '-c', 'copy', '/volume1/Video/Streaming Recording/20210630192800 - test.ts']
2021-06-30 19:28:00.370 FFMPEG record 'test' ended
2021-06-30 19:28:00.371 Something went wrong with 'test', retry 1/99 in 10 seconds

After switching to legacy recording method, this is the log:

2021-06-30 19:42:10.099 Record: 'test' started using legacy method
2021-06-30 19:42:10.116 Output file /volume1/Video/StreamingRecording/20210630194210 - test.ts could not be created. Please check your settings. Description: [Errno 13] Permission denied: '/volume1/Video/StreamingRecording/20210630194210 - test.ts'
2021-06-30 19:42:10.116 Something went wrong with 'test', retry 2/99 in 10 seconds

I am suprised about permission denied, since all users have access to the folder /volume1/Video/StreamingRecording/, the rights are "drwxrwxrwx"

Any idea, what goes wrong?

Thanks and Regards,

Torsten

tvstreamrecord DS 420+

Hallo Zusammen,

ich habe folgendes Problem und weiss nicht mehr weiter. Ich habe alles nach Installationsanleitung auf meiner neuen DS420+ installiert ( +tvstreamrecord Synology package documentation) aber es wird keine Aufnahme getätigt.

Folgende Fehlermeldung erhalte ich.

['/volume1/@appstore/MediaServer/bin/ffmpeg', u'-i', 'rtsp://192.168.74.1:554/?avm=1&freq=306&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=0&pids=0,16,17,18,20,100,101,102,104,170,176,2171', u'-y', u'-t', u'2138', u'-loglevel', u'fatal', u'-acodec', u'copy', u'-vcodec', u'copy', u'/volume1/video/20200709111121 - Test.ts']

2020-07-09 11:11:26.376 | FFMPEG record 'Test' ended
Something went wrong with 'Test', retry 93/99 in 10 seconds

Ich denke es hängt an FFMPEG. Den Pfad habe ich kontrolliert und der Stimmt.

ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.3 (crosstool-NG 1.20.0) 20150311 (prerelease)
configuration: --prefix=/usr --incdir='${prefix}/include/ffmpeg' --arch=i686 --target-os=linux --cross-prefix=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- --enable-cross-compile --enable-optimizations --enable-pic --enable-gpl --enable-shared --disable-static --enable-version3 --enable-nonfree --enable-libfaac --enable-encoders --enable-pthreads --disable-bzlib --disable-protocol=rtp --disable-muxer=image2 --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffserver --disable-ffplay --disable-devices --disable-bzlib --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libmp3lame --disable-vaapi --disable-decoder=amrnb --disable-decoder=ac3 --disable-decoder=ac3_fixed --disable-encoder=zmbv --disable-encoder=dca --disable-encoder=ac3 --disable-encoder=ac3_fixed --disable-encoder=eac3 --disable-decoder=dca --disable-decoder=eac3 --disable-decoder=truehd --cc=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ccache-gcc --enable-yasm --enable-libx264 --enable-encoder=libx264
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc 53. 3.100 / 53. 3.100

TV Sender von der Fritzbox DVBc am Beispiel ARTE :

rtsp://192.168.74.1:554/?avm=1&freq=306&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=0&pids=0,16,17,18,20,400,401,402,403,407,408,404,470,1276,2171

/volume1/@appstore/MediaServer/bin/ffmpeg

Mobile Aufnahmen ignorieren Verlängerung

Hallo,

wenn ich eine Aufnahme über die mobile Ansichtaufnehmen will und dazu einen EPG-Eintrag auswähle, ist in der folgenden Ansicht der Start- und Stopzeiten die Vor- bzw. Nachlaufzeit nicht berücksichtigt. Ich kann zwar die Zeit natürlich verändern, aber es wäre angenehmer, wenn als Standard die Verlängerung berücksichtigt wäre.

extend available placeholders to enable multiple record directories

Hi,
gerade wenn viel gleichzeitig aufgenommen wird, wäre es gut, wenn mehr Platzhalter zur Verfügung stehen würden:

  • %month% , %year%, %day% ...
  • %channel%
  • %channelid%
  • ...

Somit könnte man direkt bei der Aufnahme eine gewisse "Vorsortierung" (Dateiname und ggf. Ordner erstellen) auf Ordnerebene erreichen.

Oder.. beim Aufnahmedialog ein zusätzliches Felder ergänzen, dass diese Aufnahme in einen Unterordner im Standard Record Verzeichnis gespeichert wird. Das wäre sicherlich für wiederkehrende Aufnahmen interessant.

Time shift error

Timing a record for after the time shift results in incorrect start time and should be taken into account (stop time is ok).

Zeitgleiche Aufnahmen

Heyho,
mir ist aufgefallen, dass ich nicht 2 Sendungen zur gleichen Zeit aufnehmen kann.
Meine Fritbox bietet 4 Kanäle, theoretisch kann ich also 4 Sendungen gleichzeitig aufzeichnen.
Nun bin ich mir nicht sicher, ob man mit ffmpeg mehrere Streams zur selben Zeit öffnen kann, aber das wäre ein super Feature

Record rtp stream with ffmpeg

I cant record an rtp stream. I changed the path of ffmpeg, for rtp support. now i get this:

FFMPEG record 'abc' ended
FFMPEG Record 'abc' termination error, process might be running
FFMPEG Record 'abc': termination may have failed

Synology: using synoindex with Docker

Issue: Using a Docker installation it's not possible to access synoindex.

Some workarounds with Synology Task Scheduler can be tried instead.
You will found the Task Scheduler in the Control Panel of your DiskStation Manager.

1. Reindex whole folder

Schedule this command with the Task Scheduler:

synoindex -A /myExternalVideoPath

No post-processing command is necessary.

2. Index only new files (advanced solution)

  • collect new file names using post-processing option of tvstreamrecord (here the internal Docker path must be used):
sed -i "$ a\%file%" /volume1/common/list.txt

Note: sed have to be used, normal output redirection >> will not work.

  • schedule a new script (here the external DS path must be used):

This script will check whether the output file exists. In this case, synoindex will be called for each line of this file and the file will be removed afterwards. This solution should have a smaller impact and could thus be run more often.

#bin/sh
file="/myExternalVideoPath/list.txt"
if test -f $file; then
    while read p; do
        synoindex -a "$p"
    done < $file
    rm $file    
fi

Feedback / confirmation are welcome.

can´t update EPG

Hi,

since a few days EPG is failling

2019-09-13 07:27:45.310 tvstreamrecord v.1.4.1 / XMLTV import started
2019-09-13 07:27:45.639 XMLTV: reading URL http://xmltv.xmltv.se/datalist.xml.gz with 2154717 bytes
2019-09-13 07:27:45.652 Unknown XMLTV generator 'Vind', please contact me if it fails
2019-09-13 07:27:47.038 XMLTV import completed with 0 entries
2019-09-13 07:27:47.039 EPG Thread timer waiting till 00:15 (60432 seconds)

any idea?
regards Thorsten

MagentaTV playlists

MagentaTV playlists

This solution is for you if you're using MagentaTV and your playlist is not working.
If your URI looks like:
rtp://[email protected]:10000
you need to convert it to a following form:
rtp://@232.0.10.35:10000?sources=87.141.215.251

Tipp: You can use a common Editor with your .m3u-playlist.
Just replace all
87.141.215.251@
with
@
and all of
:10000
with:
:10000?sources=87.141.215.251
and re-import the file.

Note: You can find a current multicast list here: https://db.iptv.blog/multicastadressliste

Note: Please ensure your ffmpeg configuration is correct and rtp is added to the list of supported protocols

Support ffmpeg with proxy

Hi, long time no see :)

could you add the possibility to set the environment variable "http_proxy" so that ffmpeg can use this when recording streams.

Required changes

config.py

  • add proxy enable/disable button
  • add proxy url field (which is only enabled, when "button" is enabled (like the postprocessing option)

config.tpl

  • changes in UI to reflect new config variables

tvstreamrecord.py

I have tested recording using ffmpeg and a proxy sucessfully by just inserting the os.environment directly into the source code. However an integration into the tvstreamrecord UI would be a much "cleaner" solution.

Backend von TVStreamRecord läuft nicht mehr

Hallo und frohe Weihnachten, ich habe das Problem, dass das Backend von TVStreamRecord sich nicht mehr aufrufen lässt. Auf dem Port 8030 ist kein Dienst mehr aktiv, deshalb bekommen ich eine Fehlermeldung im Browser. Aufzeichnen scheint aber noch zu funktionieren, da eine tägliche Aufnahme nach wie vor gemacht wird. Das Logfile zeigt folgendes:

(Starting server on: 192.168.111.2:8030 ist richtig)..

Hat jemand eine Idee, woran das Problem liegt?

2020-12-25 17:00:13 OUT Using Python (python3)...
2020-12-25 17:00:15.294 Starting tvstreamrecord v.1.4.3c with Python 3.8
2020-12-25 17:00:15.295 Logging output initialized
2020-12-25 17:00:15.348 Initializing database...
2020-12-25 17:00:27.073 Initializing config...
2020-12-25 17:00:27.113 Checking internationalization...
2020-12-25 17:00:27.194 Initializing records...
2020-12-25 17:00:27.221 Initializing EPG import thread...
2020-12-25 17:00:27.226 Record: Thread timer for 'RTL Aktuell' started for 5972 seconds
2020-12-25 17:00:27.227 EPG Thread timer waiting till 01:00 (28772 seconds)
2020-12-25 17:00:27.228 Starting server on: 192.168.111.2:8030
2020-12-25 17:00:27.415 Server exception. Default network settings will be used this time. Please log in using port 8030 and check your network settings.
2020-12-25 17:00:27.415 Starting server on: 0.0.0.0:8030
2020-12-25 17:00:27.425 Traceback (most recent call last):
2020-12-25 17:00:27.425 File "tvstreamrecord.py", line 1347, in
2020-12-25 17:00:27.431 run(host=config.cfg_server_bind_address, port=config.cfg_server_port, server=CherryPyServer, quiet=True)
2020-12-25 17:00:27.431 File "/volume1/@appstore/tvstreamrecord/bottle.py", line 3476, in run
2020-12-25 17:00:27.487 server.run(app)
2020-12-25 17:00:27.488 File "/volume1/@appstore/tvstreamrecord/bottle.py", line 3057, in run
2020-12-25 17:00:27.497 from cherrypy import wsgiserver
2020-12-25 17:00:27.497 File "/volume1/@appstore/tvstreamrecord/cherrypy/init.py", line 64, in
2020-12-25 17:00:27.505 from cherrypy._cperror import HTTPError, HTTPRedirect, InternalRedirect
2020-12-25 17:00:27.505 File "/volume1/@appstore/tvstreamrecord/cherrypy/_cperror.py", line 118, in
2020-12-25 17:00:27.508 from cgi import escape as _escape
2020-12-25 17:00:27.509 ImportError
2020-12-25 17:00:27.509 :
2020-12-25 17:00:27.509 cannot import name 'escape' from 'cgi' (/var/packages/py3k/target/usr/local/lib/python3.8/cgi.py)
2020-12-25 17:00:27.509 During handling of the above exception, another exception occurred:
2020-12-25 17:00:27.509 Traceback (most recent call last):
2020-12-25 17:00:27.509 File "tvstreamrecord.py", line 1351, in
2020-12-25 17:00:27.515 run(host="0.0.0.0", port=8030, server=CherryPyServer, quiet=True)
2020-12-25 17:00:27.515 File "/volume1/@appstore/tvstreamrecord/bottle.py", line 3476, in run
2020-12-25 17:00:27.526 server.run(app)
2020-12-25 17:00:27.527 File "/volume1/@appstore/tvstreamrecord/bottle.py", line 3057, in run
2020-12-25 17:00:27.536 from cherrypy import wsgiserver
2020-12-25 17:00:27.536 File "/volume1/@appstore/tvstreamrecord/cherrypy/init.py", line 64, in
2020-12-25 17:00:27.537 from cherrypy._cperror import HTTPError, HTTPRedirect, InternalRedirect
2020-12-25 17:00:27.538 File "/volume1/@appstore/tvstreamrecord/cherrypy/_cperror.py", line 118, in
2020-12-25 17:00:27.539 from cgi import escape as _escape
2020-12-25 17:00:27.539 ImportError
2020-12-25 17:00:27.540 :
2020-12-25 17:00:27.540 cannot import name 'escape' from 'cgi' (/var/packages/py3k/target/usr/local/lib/python3.8/cgi.py)

Viele Grüße

Torsten

Enhance Record Dialog

Beim starten einer Aufnahme via "EPG Chart" wird nur "Record" und "Cancel" angeboten.

Hier wäre es hilfreich, wenn ein "Record & Edit" verfügbar wäre. Somit könnten Titel und weitere Details direkt geändert werden ohne vorher auf den Reiter "Records" zu wechseln.

Erweiterungsvorschläge für tvstreamrecord

Hallo Pav,

nach weiterem rumspielen mit http (hls) streams (und Speicherung als mp4) sind mir folgende Punkte/Erweiterungsmöglichkeiten aufgefallen:

Erweiterter ffmpeg support

  • loglevel von ffmpeg auswählbar, um ffmpeg fehler bei stream records zu finden (sprich warum kam es zu einem "retry"). Evtl. lässt sich ja der ffmpeg log umleiten?
  • Möglichkeit Parameter an ffmpeg zu übergeben vor "-i", also "Additional pre-input arguments". Hierdurch kann zb. die FrameRate und/oder ein custom header übergeben werden.
    ffmpeg.exe -re -headers 'X-Forwarded-For: x.x.x.x' -i http://xxx/master.m3u8 ...
  • Möglichkeit Aufnahmen aus "retries" zusammenzuführen... es passiert zb. dass ein Stream kurzzeitig unterbrochen wird, und für eine Aufnahme mehrere "Teil-Aufnahmen" entstehen
  • Meta Tags für recordings automatisch schreiben (zb. Titel)
  • ggf. "-c copy -bsf:a aac_adtstoasc" als default für Additional output arguments?

UI

  • Nach "submit changes" wird auf den General Tab gewechselt, egal auf welchem Untertab man war
  • Edit Record Dialog (über Zahnrad) hat "create recording" als Titel?

Advanced

  • Record name/path mask wird "default" aus Config übernommen, kann aber im jeweiligen Record Dialog noch angepasst werden - sprich sendungsspezifische Record name/path mask (und evtl. meta Tags)

Gruß
tjeh

error

hello, I'm contacting you because I have this error that appears in the log, can you help me?
Thank you Best regards

(2020-02-22 21:49:56.969 Output file /volume1/video/enregistrements_TV/20200222214956 - TF1_FULL_HD.ts could not be created. Please check your settings. Description: [Errno socket error] [Errno -2] Name or service not known)

Brainstorming

I do not know if this is the right place and whether this should be separate "feature requests" thus here is a list of points that might be worth consideration.

EPG Chart

  • will display a complete day, thus programm only running for 5-10 minutes are barley visible in both horizontal and vertical display

General

  • restart button within the application (avoids the stop - start oddyssee within the synology package manager)
  • fix permission of installed package. Currently files are either belonging to admin:users or root:root. Maybe it should be considered to create a specific user ie. tvstreamrecord:root?
  • button to perform code update from git directly
  • if port is configured incorrectly (ie. another program already on the port running) and tvstreamrecord has been stopped there is currently no way to reset/edit the port

Config

  • use dropdown for zoomlevel to avoid absurd values (ie. >= 3 makes no sense). Or implement "word" values like (vertical small, vertical middle, vertical huge...)
  • group config options that will need a restart
  • make available a selection dialog for the "Path for your recordings"

Channels

  • possiblilty to set default values for "show xxx entries"
  • gui not consistent grab epg uses "+ and -" while the dialog uses a slider

EPG List

  • possiblilty to set default values for "show xxx entries"

So for future discussion points shall I open sepeare Issues and/or submit the above as seperate issues/ideas?

Issue with placeholder %title%

Hi,

i am running tvstreamrecord on windows. Apparently when trying to record shows with a title containing "ä,ö,ü" i.e. "Bares für Wahres" the recording fails. When i manually change the title for such recordings from ie. "ü" to "ue" the recording works without any issues.

I guess %title% placeholder is somehow escaped within the script and windows does not like the current implementation of how "ä,ö,ü" are handled.

Furthermore excessive "spaces" in the shows title are each replaced with "_". This results sometimes in something like:

  • "This is a Title with" --> "This_is_a_Title___with"

regards

Support for linux/arm64?

Hi Pavion,

Are there any plans to support OS/ARCH: linux/arm64 in future?
I think that would make some Raspberry users very happy, including me.

Thanks!

Record name/path for each record

Record name/path mask wird "default" aus Config übernommen, kann aber im jeweiligen Record Dialog noch angepasst werden - sprich sendungsspezifische Record name/path mask (und evtl. meta Tags)

Stream collision warning switch

For a translation please comment :)

Idee: einen Schalter einbauen, mit dem Warnungen bei gleichzeitigen Aufnahmen angezeigt werden sollen.
Die Kollision ist zu prüfen (und zurückzumelden!) bei der Erstellung neuer Aufnahmen:

  • über EPG Chart
  • Liste
  • manuell
  • Änderungen
  • über TV-Browser
  • über mobile Anbindung
  • beim direkten Ein-/Ausschalten der Aufnahme

Geschätzter Aufwand: sehr groß

Better EPG overlay

https://www.synology-forum.de/showthread.html?37898-tvstreamrecord-Aufzeichnen-von-HTTP-Streams&p=786948&viewfull=1#post786948

Idee:

  1. bei Abgleich Aufnahme <-> EPG soll nicht mehr mit Deltas gerechnet werden, sondern verglichen, ob ein EPG-Eintrag in dieser Zeit ist.
    Es ist zu prüfen, ob es Auswirkungen auf die Listenansicht hat!
    Es ist zu prüfen, ob Sekundenwert passt (d.h. Aufnahme und EPG wird immer mit xx:xx:00 gespeichert o.Ä.),
  2. zusätzlicher Overlay (zu-/abschaltbar?) könnte generell einen Balken einer Aufnahme in der EPG-Ansicht mit anderer Farbe darstellen -- unabhängig davon, ob und welche EPG Einträge darunter sind. Notfalls müsste für die Sender, die keine EPG-Daten haben, bei der Datenrückgabe ein Dummy erstellt werden.

Zeitgleiche Aufnahmen am FritzRepeater

Hallo,

wie ich bereits in dem Issue #22 lesen konnte, hat tvstreamrecord keine Begrenzung für zeitgleiche Aufnahmen. Die DVB-C fähigen Geräte von AVM hingegen streamen an ein Gerät aber immer nur einmal.

Ich habe tvstreamrecord auf einer DS415+ laufen. Diese hat zwei Ethernet-Interfaces, welche beide an meiner FritzBox hängen. Zusätzlich habe ich im Netz den FritzRepeater mit DVB-C. Das gleichzeitige Aufnehmen wäre also theoretisch möglich, da ich über zwei verschiedene IPs auf den Repeater zugreifen kann.
Funktionieren tut das allerdings mit tvstreamrecord noch nicht. Wahrscheinlich deshalb, weil beide ffmpeg-Prozesse ihre Verbindung über das selbe Interface aufbauen wollen.

Gibt es hier eine Möglichkeit das Problem mit ffmpeg selbst zu lösen oder wäre da eine Lösung über tvstreamrecord möglich?
Ein Beispiel: Wenn bereits eine Aufnahme läuft, dann sorgt tvstreamrecord dafür, dass der zweite ffmpeg-Prozess über das zweite Interface arbeitet.

Ich stelle mich auch gern als Versuchskaninchen zur Verfügung.

Beste Grüße
Daniel

ffmpeg Problem

Hi, erstmal vielen Dank für die Arbeit an dem Programm!

Auf meinem Synology DS112+ ist ffmepg 2.7.1 als ausgeliefertes Paket (/usr/bin/ffmpeg) enthalten, die Aufnahme scheitert dann leider mit:
Unrecognized option 'rtsp_transport anscheinend kennt diese Version das Flag noch nicht.

Daher habe ich zusätzlich ffmpeg über das Community-Paket(/volume1/@appstore/ffmpeg) installiert in Version 4.1. Da bekomme ich aber folgendes Problem FFMPEG could not be started. Error: [Errno 13] Permission denied

Nun habe ich schon diverse Rechteänderungen für das ffmpeg Verzeichnis ausprobiert aber keine führte zum Erfolg. Ich weiß nicht mit welchen Rechten der Python-Prozess läuft um ffmpeg aufrufen zu dürfen?

Keep original title as placeholder for file name and ffmpeg

Neuer Platzhalter %origtitle% soll unbereinigten Namen einer Sendung bereitstellen für die Verwendung als Dateiname oder -metadata für ffmpeg
https://www.synology-forum.de/showthread.html?37898-tvstreamrecord-Aufzeichnen-von-HTTP-Streams&p=786948&viewfull=1#post786948

fn = fn.replace("%date%", dateholder).replace("%title%", titleholder)

Idee:

  1. prüfen, ob der Name nicht vielleicht schon UTF-konform bereinigt wurde (wegen HTML-Darstellung, beim EPG-Import oder Aufnahmenerstellung)
  2. Ist es nicht der Fall (oder zur Sicherheit), wäre ein guter Regex im Internet zu suchen / zu implementieren, jedenfalls keine eigene Lösung nur für DE
  3. in erweiterten Einstellungen könnte ein Hinweis eingebaut werden:
    use %origtitle% instead of %title% for utf-8 filename support

M3U Playlist from URL?

Hi Pavion, i would like to ask you if you can add URL support instead of manual uploading of an M3U playlist. And maybe even autoupdate it everyday automatically. It would be very cool! Thanks!

Fehler beim Startdatum

Beim Anlegen einer Aufnahme entsteht ein Fehler, wenn man Wiederholungen nutzt. Das Start-Datum wird auf den Folgetag gelegt, wenn man das Datum dann per Hand korrigiert wird der Timer nicht angepasst.

Verwendete Version 0.6.2
Verwendete Sprache deutsch
Verwendete Lokalisierung für Datum default

Internal Server Error

Hello,

I use tvstreamrecord on my Synology NAS and I get an error 500 (Internal Server Error) when I try to import an m3u playlist in the channels menu.

On the Synology version where the playlist is stored on the NAS? This would allow me to inject the playlist manually until you correct the bug.

In advance, thank you

Warning in TV-Browser if record times are not synchron anymore

Rückmeldung der Aufnahmezeiten an TSRPlugin, um eine Warnmeldung zu generieren, wenn die aktuellen Aufnahmezeiten aus welchem Grund auch immer nicht den Aufnahmezeiten im TV-Browser entsprechen.

Wie in #26 erstmal prüfen, wie ich überhaupt im TSRP eine Meldung ausgeben kann?!

Prüfen, wann die Meldung generiert würde? Beim Programmstart oder beim Refresh?
Falls so eine Nicht-Übereinstimmung doch so gewollt ist, darf der User nicht unendlich mit Fehlermeldungen bombardiert werden!

ffmpeg-Einstellungen

Hi,

mir ist letztens aufgefallen, dass bei einer meiner Aufnahmen die Tonspur mit Bildbeschreibungen für Blinde drin war.
Nach ein wenig Recherche habe ich festgestellt, dass ffmpeg normalerweise nur je eine Video-, Audiospur auswählt und zwar die Videospur mit der höchsten Auflösung, die Audiospur mit den meisten Kanälen. Das war bei dem von mir aufgenommenen Film halt die für Blinde.

Das kann ich natürlich bei mir fixen, aber ich dachte ich geb mal bescheid, dass das in der Standardinstalltionseinstellung für den Benutzer vielleicht nicht ersichtlich ist.

Folgendes würde laut ffpeg-wiki alle (Video- und Audio)Kanäle kopieren:
ffmpeg -i input -map 0 -c copy output.mp4

MfG,
haDe

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.