Hello,
I am having issues getting hdmi encoder to work with NextPVR on Ubuntu 24.04 server. Below are
the steps I have taken. I can't use m3u route, adding as IPTV source, because I need
to execute a channel changing script when the channel is selected.
0.NextPVR version 7.9.1.241229
1. create extras device in /var/opt/nextpvr/extras-c84.xml
2. webui - devices>extra recorder(extras-c84.xml)>scan channels>save
3. not remapping at this time, but would remap channels to SD source for epg
4. test play - channels>1-CHAN1 - no tuner was available for the requested channel.
This is extras xml, both entries are for testing purposes, one direct, one with future
channel tunning script.
extras-c84.xml:
<extras>
<channel name="CHAN">
<command> curl </command>
<args> "-s http://192.168.15.184/0.ts " </args>
</channel>
<channel name="CHAN">
<command> bash </command>
<args>-c /var/opt/nextpvr/scripts/c84_e.sh </args>
</channel>
</extras>
This is future tuning script:
/var/opt/nextpvr/scripts/c84_e.sh:
# tuning code
curl -s http://192.168.15.184/0.ts
Looking at the logs, this looks to be the error:
2025-02-20 16:19:26.028 [DEBUG][124] live tv is possible
2025-02-20 16:19:26.028 [DEBUG][124] Running: curl "-s http://192.168.15.184/0.ts "
2025-02-20 16:19:26.028 [ERROR][124] Unexpected error calling StartStream(): System.ComponentModel.Win32Exception (2): An error occurred trying to start process ' curl ' with working directory '/opt/nextpvr/system'. No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at NShared.ExtrasRecorder.StartStream(ChannelMapping channelMapping, String target, String& reason)
at NShared.RecordingService.StartStream(Int32 channelOID, String target, Int32 previousHandle, ChannelMapping& returnMapping, String& reason)
at NShared.RecordingServiceProxy.StartStream(Int32 channelOID, String target, Int32 previousHandle, ChannelMapping& channelMapping, String& reason)
2025-02-20 16:19:26.028 [DEBUG][124] StartStream(7160:ESPNHD, LIVE&/home/recordings/live-ESPNHD-889-5.ts) allocated handle: 0
2025-02-20 16:19:26.028 [DEBUG][124] Handle: 0
2025-02-20 16:19:26.028 [DEBUG][124] Failed to start stream. Handle 0.
2025-02-20 16:19:26.029 [DEBUG][124] [FFMPEG]: [http @ 0x5ae99049e680] HTTP error 404 Not Found
2025-02-20 16:19:26.029 [DEBUG][124] [FFMPEG]: [in#0 @ 0x5ae99049de00] Error opening input: Server returned 404 Not Found
2025-02-20 16:19:26.029 [DEBUG][124] [FFMPEG]: Error opening input file http://127.0.0.1:8866/live?channeloid=71...467b38f3db.
2025-02-20 16:19:26.029 [DEBUG][124] [FFMPEG]: Error opening input files: Server returned 404 Not Found
2025-02-20 16:19:26.991 [DEBUG][118] {"stat":"Failed","code":11,"msg":"No tuner was available for the requested channel."}
it complains about "/opt/nextpvr/system" but the directory does exist... curl is installed.
Any suggestions? What am I missing? If there is a better route to implement
hdmi encoder as a tuner, I am open to suggestions. From searching the forums,
"extras" appears to be the correct way.
Thank you.
I am having issues getting hdmi encoder to work with NextPVR on Ubuntu 24.04 server. Below are
the steps I have taken. I can't use m3u route, adding as IPTV source, because I need
to execute a channel changing script when the channel is selected.
0.NextPVR version 7.9.1.241229
1. create extras device in /var/opt/nextpvr/extras-c84.xml
2. webui - devices>extra recorder(extras-c84.xml)>scan channels>save
3. not remapping at this time, but would remap channels to SD source for epg
4. test play - channels>1-CHAN1 - no tuner was available for the requested channel.
This is extras xml, both entries are for testing purposes, one direct, one with future
channel tunning script.
extras-c84.xml:
<extras>
<channel name="CHAN">
<command> curl </command>
<args> "-s http://192.168.15.184/0.ts " </args>
</channel>
<channel name="CHAN">
<command> bash </command>
<args>-c /var/opt/nextpvr/scripts/c84_e.sh </args>
</channel>
</extras>
This is future tuning script:
/var/opt/nextpvr/scripts/c84_e.sh:
# tuning code
curl -s http://192.168.15.184/0.ts
Looking at the logs, this looks to be the error:
2025-02-20 16:19:26.028 [DEBUG][124] live tv is possible
2025-02-20 16:19:26.028 [DEBUG][124] Running: curl "-s http://192.168.15.184/0.ts "
2025-02-20 16:19:26.028 [ERROR][124] Unexpected error calling StartStream(): System.ComponentModel.Win32Exception (2): An error occurred trying to start process ' curl ' with working directory '/opt/nextpvr/system'. No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at NShared.ExtrasRecorder.StartStream(ChannelMapping channelMapping, String target, String& reason)
at NShared.RecordingService.StartStream(Int32 channelOID, String target, Int32 previousHandle, ChannelMapping& returnMapping, String& reason)
at NShared.RecordingServiceProxy.StartStream(Int32 channelOID, String target, Int32 previousHandle, ChannelMapping& channelMapping, String& reason)
2025-02-20 16:19:26.028 [DEBUG][124] StartStream(7160:ESPNHD, LIVE&/home/recordings/live-ESPNHD-889-5.ts) allocated handle: 0
2025-02-20 16:19:26.028 [DEBUG][124] Handle: 0
2025-02-20 16:19:26.028 [DEBUG][124] Failed to start stream. Handle 0.
2025-02-20 16:19:26.029 [DEBUG][124] [FFMPEG]: [http @ 0x5ae99049e680] HTTP error 404 Not Found
2025-02-20 16:19:26.029 [DEBUG][124] [FFMPEG]: [in#0 @ 0x5ae99049de00] Error opening input: Server returned 404 Not Found
2025-02-20 16:19:26.029 [DEBUG][124] [FFMPEG]: Error opening input file http://127.0.0.1:8866/live?channeloid=71...467b38f3db.
2025-02-20 16:19:26.029 [DEBUG][124] [FFMPEG]: Error opening input files: Server returned 404 Not Found
2025-02-20 16:19:26.991 [DEBUG][118] {"stat":"Failed","code":11,"msg":"No tuner was available for the requested channel."}
it complains about "/opt/nextpvr/system" but the directory does exist... curl is installed.
Any suggestions? What am I missing? If there is a better route to implement
hdmi encoder as a tuner, I am open to suggestions. From searching the forums,
"extras" appears to be the correct way.
Thank you.