extras - sub3/NextPVR GitHub Wiki

About Extras

NextPVR v5 added support for "Extras" devices. These provide a mechanism for users to add support for their own custom capture devices that may not otherwise be supported. These might be physical devices, like TV tuners, or network sources etc.

Extras devices are basically a executable or script file which is responsible for outputting a transport stream (.ts) to standard output. NextPVR will then capture that output and use it as a device, which can then be used for a recording or Live TV, like any other device. These are considered advanced, but are also very powerful and can be a way to add support for additional hardware, etc.

Creating an Extras device

Extras devices are created by making an extras-*.xml file in the NextPVR data directory (for example C:\Users\Public\NPVR-data\extras-fm.xml). When NextPVR is started, it'll find these files in the data directory, and create devices for them, which can be see in the Settings->Devices screen.

An example of the format is shown here:

  <extras>
    <channel name="Aljazeera">
      <command>ffmpeg.exe</command>
      <args>-i http://aljazeera-eng-hd-live.hls.adaptive.level3.net/aljazeera/english2/index.m3u8 -vcodec copy -acodec copy -f mpegts - </args> 
    </channel>
  </extras>

When this Extras device it scanned, it'll create one channel, call Aljazeera, whose stream will be accessed by running ffmpeg with the arguments provided. Multiple channels can be included in a single extras xml file.

You can also use a templated channel, by providing the name {channel-name}. This will cause the application to ask you for a channel lineup (from your configured xmltv and schedules direct lineups), and will create one channel for each channel in the lineup. When passing the supplied arguments to the executable/script, it'll replace {channel} with the channel number, so that you can tell which channel number you should work providing.

  <extras>
    <channel name="{channel-name}">
      <command>ffmpeg.exe</command>
      <args>{channel}</args> 
    </channel>
  </extras>
⚠️ **GitHub.com Fallback** ⚠️