Mailing List Archive

Problems with ExternalRecorder and streamlink
Hello!

I had MythTV setup using the ExternalRecorder together with streamlink.

Last summer the svtplay plugin for streamlink stopped working and I
temporarily stopped using it by changing the recording priority to use
another recorder.

In streamlink version 1.6.0 (2020-09-22) it was fixed (by Ian Cameron)
and I verified in streamlink that it worked but I never took the time to
change back the recording priority until recently.

But I can not get it to work again. I don't remember to have done
anything else specific to the original problem but much has changed
since then.

MythTV has been upgraded to version 31 and streamlink to version 2.0.0
where streamlink has dropped support for Python 2 and Python 3.5 and
MythTV added support for Python 3.

I use Debian Buster and have both Python 2.7 and 3.7 installed.

I tried he following but it just stops at the last line below.

mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose all
2021-01-26 22:55:35.201299 C mythexternrecorder version: [v31.0] www.mythtv.org
2021-01-26 22:55:35.201337 C Qt version: compile: 5.11.3, runtime: 5.11.3
2021-01-26 22:55:35.201391 I Debian GNU/Linux 10 (buster) (i386)
2021-01-26 22:55:35.201394 N Enabled verbose msgs: all
2021-01-26 22:55:35.201415 N Setting Log Level to LOG_DEBUG
2021-01-26 22:55:35.212913 I : Buffer: Ready for data.
2021-01-26 22:55:35.212956 I Added logging to the console
2021-01-26 22:55:35.212986 I : Command parser ready.
2021-01-26 22:55:35.213774 D New Logging Client: ID: (#1)
2021-01-26 22:55:35.231943 I Channels in '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf', Tuner: '', Scanner: ''
^C

What can I do to debug this problem?

Please let me know if I should provide additional information.

cat /home/peter/delat/script/mythtv-svtplay-external-recorder.conf

[RECORDER]
# The recorder command to execute. %URL% is optional, and
# will be replaced with the channel's "URL" as defined in the
# [TUNER/channels] (channel conf) configuration file
#command="cvlc \"%URL%\" --sout \"#std{mux=ts,access=file,dst=-}\""
command="streamlink --player=vlc --stdout \"%URL%\" best"

# Used in logging events, %ARG% are replaced from the channel info
desc=streamlink \"%URL%\" \"%CHANNUM%\" \"%CHANNAME%\" \"%CALLSIGN%\"

[TUNER]
# An optional CONF file which provides channel details. If it does not
# exist, then channel changes are not supported.
channels=mythtv-svtplay-external-recorder-channels.conf

# If [TUNER/command] is provided, it will be executed to "tune" the
# channel. A %URL% parameter will be substituted with the "URL" as
# defined in the [TUNER/channels] configuration file
#command=

# Timeout for changing channels in msecs
#timeout=

[SCANNER]
# When MythTV scans for channels, The contents of the [TUNER/channels]
# config file are used to populate MythTV's channel information.
# If a command is provided here, it will be executed first, so it can
# populate the [TUNER/channels] config file
#command=/home/myth/bin/scan.sh "%CHANCONF%"

# Timeout for scan command in msecs
#timeout=60000


cat /home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf

[1]
NAME=SVT1 HD
CALLSIGN=SVT1HD
XMLTVID=svt1.svt.se
URL="https://www.svtplay.se/kanaler/svt1?start=auto"
ICON=/home/mythtv/.mythtv/channels/svt1.svt.se.png

[2]
NAME=SVT2 HD
CALLSIGN=SVT2HD
XMLTVID=svt2.svt.se
URL="https://www.svtplay.se/kanaler/svt2?start=auto"
ICON=/home/mythtv/.mythtv/channels/svt2.svt.se.png

[3]
NAME=Kunskapskanalen
CALLSIGN=Kunskapskanalen
XMLTVID=kunskapskanalen.svt.se
URL="https://www.svtplay.se/kanaler/kunskapskanalen?start=auto"
ICON=/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png

[4]
NAME=Barnkanalen
CALLSIGN=Barnkanalen
XMLTVID=barnkanalen.svt.se
URL="https://www.svtplay.se/kanaler/svtbarn?start=auto"
ICON=/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png

[5]
NAME=SVT24
CALLSIGN=SVT24
XMLTVID=svt24.svt.se
URL="https://www.svtplay.se/kanaler/svt24?start=auto"
ICON=/home/mythtv/.mythtv/channels/svt24.svt.se.png

_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Tue, Jan 26, 2021 at 3:11 PM Peter Carlsson <maillist.peter@home.se>
wrote:

> Hello!
>
> I had MythTV setup using the ExternalRecorder together with streamlink.
>
> Last summer the svtplay plugin for streamlink stopped working and I
> temporarily stopped using it by changing the recording priority to use
> another recorder.
>
> In streamlink version 1.6.0 (2020-09-22) it was fixed (by Ian Cameron)
> and I verified in streamlink that it worked but I never took the time to
> change back the recording priority until recently.
>
> But I can not get it to work again. I don't remember to have done
> anything else specific to the original problem but much has changed
> since then.
>
> MythTV has been upgraded to version 31 and streamlink to version 2.0.0
> where streamlink has dropped support for Python 2 and Python 3.5 and
> MythTV added support for Python 3.
>
> I use Debian Buster and have both Python 2.7 and 3.7 installed.
>
> I tried he following but it just stops at the last line below.
>
> mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose all
> 2021-01-26 22:55:35.201299 C mythexternrecorder version: [v31.0]
> www.mythtv.org
> 2021-01-26 22:55:35.201337 C Qt version: compile: 5.11.3, runtime: 5.11.3
> 2021-01-26 22:55:35.201391 I Debian GNU/Linux 10 (buster) (i386)
> 2021-01-26 22:55:35.201394 N Enabled verbose msgs: all
> 2021-01-26 22:55:35.201415 N Setting Log Level to LOG_DEBUG
> 2021-01-26 22:55:35.212913 I : Buffer: Ready for data.
> 2021-01-26 22:55:35.212956 I Added logging to the console
> 2021-01-26 22:55:35.212986 I : Command parser ready.
> 2021-01-26 22:55:35.213774 D New Logging Client: ID: (#1)
> 2021-01-26 22:55:35.231943 I Channels in
> '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf',
> Tuner: '', Scanner: ''
> ^C
>
> What can I do to debug this problem?
>
> Please let me know if I should provide additional information.
>
> cat /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
>
> [RECORDER]
> # The recorder command to execute. %URL% is optional, and
> # will be replaced with the channel's "URL" as defined in the
> # [TUNER/channels] (channel conf) configuration file
> #command="cvlc \"%URL%\" --sout \"#std{mux=ts,access=file,dst=-}\""
> command="streamlink --player=vlc --stdout \"%URL%\" best"
>
> # Used in logging events, %ARG% are replaced from the channel info
> desc=streamlink \"%URL%\" \"%CHANNUM%\" \"%CHANNAME%\" \"%CALLSIGN%\"
>
> [TUNER]
> # An optional CONF file which provides channel details. If it does not
> # exist, then channel changes are not supported.
> channels=mythtv-svtplay-external-recorder-channels.conf
>
> # If [TUNER/command] is provided, it will be executed to "tune" the
> # channel. A %URL% parameter will be substituted with the "URL" as
> # defined in the [TUNER/channels] configuration file
> #command=
>
> # Timeout for changing channels in msecs
> #timeout=
>
> [SCANNER]
> # When MythTV scans for channels, The contents of the [TUNER/channels]
> # config file are used to populate MythTV's channel information.
> # If a command is provided here, it will be executed first, so it can
> # populate the [TUNER/channels] config file
> #command=/home/myth/bin/scan.sh "%CHANCONF%"
>
> # Timeout for scan command in msecs
> #timeout=60000
>
>
> cat
> /home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf
>
> [1]
> NAME=SVT1 HD
> CALLSIGN=SVT1HD
> XMLTVID=svt1.svt.se
> URL="https://www.svtplay.se/kanaler/svt1?start=auto"
> ICON=/home/mythtv/.mythtv/channels/svt1.svt.se.png
>
> [2]
> NAME=SVT2 HD
> CALLSIGN=SVT2HD
> XMLTVID=svt2.svt.se
> URL="https://www.svtplay.se/kanaler/svt2?start=auto"
> ICON=/home/mythtv/.mythtv/channels/svt2.svt.se.png
>
> [3]
> NAME=Kunskapskanalen
> CALLSIGN=Kunskapskanalen
> XMLTVID=kunskapskanalen.svt.se
> URL="https://www.svtplay.se/kanaler/kunskapskanalen?start=auto"
> ICON=/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
>
> [4]
> NAME=Barnkanalen
> CALLSIGN=Barnkanalen
> XMLTVID=barnkanalen.svt.se
> URL="https://www.svtplay.se/kanaler/svtbarn?start=auto"
> ICON=/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
>
> [5]
> NAME=SVT24
> CALLSIGN=SVT24
> XMLTVID=svt24.svt.se
> URL="https://www.svtplay.se/kanaler/svt24?start=auto"
> ICON=/home/mythtv/.mythtv/channels/svt24.svt.se.png
>
>
Hi Peter,

The behavior you describe is correct. At that point mythexternrecorder is
expecting to be given commands from mythackend. For example, instead of
hitting CTRL-C where you did, you could type:
APIVersion?
and it should spit out something like
OK:2

If you look at https://www.mythtv.org/wiki/ExternalRecorder you can see the
commands that are allowed. With APIVersion2, the serial number at the
beginning of each command should be incremented.

John
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Sat, Jan 30, 2021 at 03:01:02PM -0700, John P Poet wrote:
> On Tue, Jan 26, 2021 at 3:11 PM Peter Carlsson <maillist.peter@home.se>
> wrote:
>
> > Hello!
> >
> > I had MythTV setup using the ExternalRecorder together with streamlink.
> >
> > Last summer the svtplay plugin for streamlink stopped working and I
> > temporarily stopped using it by changing the recording priority to use
> > another recorder.
> >
> > In streamlink version 1.6.0 (2020-09-22) it was fixed (by Ian Cameron)
> > and I verified in streamlink that it worked but I never took the time to
> > change back the recording priority until recently.
> >
> > But I can not get it to work again. I don't remember to have done
> > anything else specific to the original problem but much has changed
> > since then.
> >
> > MythTV has been upgraded to version 31 and streamlink to version 2.0.0
> > where streamlink has dropped support for Python 2 and Python 3.5 and
> > MythTV added support for Python 3.
> >
> > I use Debian Buster and have both Python 2.7 and 3.7 installed.
> >
> > I tried he following but it just stops at the last line below.
> >
> > mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose all
> > 2021-01-26 22:55:35.201299 C mythexternrecorder version: [v31.0]
> > www.mythtv.org
> > 2021-01-26 22:55:35.201337 C Qt version: compile: 5.11.3, runtime: 5.11.3
> > 2021-01-26 22:55:35.201391 I Debian GNU/Linux 10 (buster) (i386)
> > 2021-01-26 22:55:35.201394 N Enabled verbose msgs: all
> > 2021-01-26 22:55:35.201415 N Setting Log Level to LOG_DEBUG
> > 2021-01-26 22:55:35.212913 I : Buffer: Ready for data.
> > 2021-01-26 22:55:35.212956 I Added logging to the console
> > 2021-01-26 22:55:35.212986 I : Command parser ready.
> > 2021-01-26 22:55:35.213774 D New Logging Client: ID: (#1)
> > 2021-01-26 22:55:35.231943 I Channels in
> > '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf',
> > Tuner: '', Scanner: ''
> > ^C
> >
> > What can I do to debug this problem?
> >
> > Please let me know if I should provide additional information.
> >
> > cat /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> >
> > [RECORDER]
> > # The recorder command to execute. %URL% is optional, and
> > # will be replaced with the channel's "URL" as defined in the
> > # [TUNER/channels] (channel conf) configuration file
> > #command="cvlc \"%URL%\" --sout \"#std{mux=ts,access=file,dst=-}\""
> > command="streamlink --player=vlc --stdout \"%URL%\" best"
> >
> > # Used in logging events, %ARG% are replaced from the channel info
> > desc=streamlink \"%URL%\" \"%CHANNUM%\" \"%CHANNAME%\" \"%CALLSIGN%\"
> >
> > [TUNER]
> > # An optional CONF file which provides channel details. If it does not
> > # exist, then channel changes are not supported.
> > channels=mythtv-svtplay-external-recorder-channels.conf
> >
> > # If [TUNER/command] is provided, it will be executed to "tune" the
> > # channel. A %URL% parameter will be substituted with the "URL" as
> > # defined in the [TUNER/channels] configuration file
> > #command=
> >
> > # Timeout for changing channels in msecs
> > #timeout=
> >
> > [SCANNER]
> > # When MythTV scans for channels, The contents of the [TUNER/channels]
> > # config file are used to populate MythTV's channel information.
> > # If a command is provided here, it will be executed first, so it can
> > # populate the [TUNER/channels] config file
> > #command=/home/myth/bin/scan.sh "%CHANCONF%"
> >
> > # Timeout for scan command in msecs
> > #timeout=60000
> >
> >
> > cat
> > /home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf
> >
> > [1]
> > NAME=SVT1 HD
> > CALLSIGN=SVT1HD
> > XMLTVID=svt1.svt.se
> > URL="https://www.svtplay.se/kanaler/svt1?start=auto"
> > ICON=/home/mythtv/.mythtv/channels/svt1.svt.se.png
> >
> > [2]
> > NAME=SVT2 HD
> > CALLSIGN=SVT2HD
> > XMLTVID=svt2.svt.se
> > URL="https://www.svtplay.se/kanaler/svt2?start=auto"
> > ICON=/home/mythtv/.mythtv/channels/svt2.svt.se.png
> >
> > [3]
> > NAME=Kunskapskanalen
> > CALLSIGN=Kunskapskanalen
> > XMLTVID=kunskapskanalen.svt.se
> > URL="https://www.svtplay.se/kanaler/kunskapskanalen?start=auto"
> > ICON=/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> >
> > [4]
> > NAME=Barnkanalen
> > CALLSIGN=Barnkanalen
> > XMLTVID=barnkanalen.svt.se
> > URL="https://www.svtplay.se/kanaler/svtbarn?start=auto"
> > ICON=/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> >
> > [5]
> > NAME=SVT24
> > CALLSIGN=SVT24
> > XMLTVID=svt24.svt.se
> > URL="https://www.svtplay.se/kanaler/svt24?start=auto"
> > ICON=/home/mythtv/.mythtv/channels/svt24.svt.se.png
> >
> >
> Hi Peter,
>
> The behavior you describe is correct. At that point mythexternrecorder is
> expecting to be given commands from mythackend. For example, instead of
> hitting CTRL-C where you did, you could type:
> APIVersion?
> and it should spit out something like
> OK:2
>
> If you look at https://www.mythtv.org/wiki/ExternalRecorder you can see the
> commands that are allowed. With APIVersion2, the serial number at the
> beginning of each command should be incremented.

Hello John,

Thanks for you answer. I tried to send some commands and they all seems
to work until I try to send TuneStatus? where I would have expected
'9:OK:Tuned to 1' or similar. Am I on the right track and is this
indicating that something is wrong?

It seems that although I add arguments '--loglevel debug --verbose' I
don't get that much help of the output.

I can call streamlink directly and get a stream that I can watch in VLC.

mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose
2021-01-31 22:58:06.872700 C mythexternrecorder version: [v31.0] www.mythtv.org
2021-01-31 22:58:06.872720 C Qt version: compile: 5.11.3, runtime: 5.11.3
2021-01-31 22:58:06.872748 I Debian GNU/Linux 10 (buster) (x86_64)
2021-01-31 22:58:06.872750 N Enabled verbose msgs: general
2021-01-31 22:58:06.872760 N Setting Log Level to LOG_DEBUG
2021-01-31 22:58:06.883132 I Added logging to the console
1::HasTuner?
1:OK:Yes
2::LoadChannels
2:OK:5
3::FirstChannel
3:OK:1,SVT1 HD,SVT1HD,svt1.svt.se,/home/mythtv/.mythtv/channels/svt1.svt.se.png
4:NextChannel
4:OK:2,SVT2 HD,SVT2HD,svt2.svt.se,/home/mythtv/.mythtv/channels/svt2.svt.se.png
5:NextChannel
5:OK:3,Kunskapskanalen,Kunskapskanalen,kunskapskanalen.svt.se,/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
6:NextChannel
6:OK:4,Barnkanalen,Barnkanalen,barnkanalen.svt.se,/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
7:NextChannel
7:OK:5,SVT24,SVT24,svt24.svt.se,/home/mythtv/.mythtv/channels/svt24.svt.se.png
8:TuneChannel:1
8:OK:Tuned to 1
9:TuneStatus?
9:OK:Tuned to

/Peter
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Sun, Jan 31, 2021 at 3:10 PM Peter Carlsson <maillist.peter@home.se>
wrote:

> On Sat, Jan 30, 2021 at 03:01:02PM -0700, John P Poet wrote:
> > On Tue, Jan 26, 2021 at 3:11 PM Peter Carlsson <maillist.peter@home.se>
> > wrote:
> >
> > > Hello!
> > >
> > > I had MythTV setup using the ExternalRecorder together with streamlink.
> > >
> > > Last summer the svtplay plugin for streamlink stopped working and I
> > > temporarily stopped using it by changing the recording priority to use
> > > another recorder.
> > >
> > > In streamlink version 1.6.0 (2020-09-22) it was fixed (by Ian Cameron)
> > > and I verified in streamlink that it worked but I never took the time
> to
> > > change back the recording priority until recently.
> > >
> > > But I can not get it to work again. I don't remember to have done
> > > anything else specific to the original problem but much has changed
> > > since then.
> > >
> > > MythTV has been upgraded to version 31 and streamlink to version 2.0.0
> > > where streamlink has dropped support for Python 2 and Python 3.5 and
> > > MythTV added support for Python 3.
> > >
> > > I use Debian Buster and have both Python 2.7 and 3.7 installed.
> > >
> > > I tried he following but it just stops at the last line below.
> > >
> > > mythexternrecorder --conf
> > > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> --loglevel
> > > debug --verbose all
> > > 2021-01-26 22:55:35.201299 C mythexternrecorder version: [v31.0]
> > > www.mythtv.org
> > > 2021-01-26 22:55:35.201337 C Qt version: compile: 5.11.3, runtime:
> 5.11.3
> > > 2021-01-26 22:55:35.201391 I Debian GNU/Linux 10 (buster) (i386)
> > > 2021-01-26 22:55:35.201394 N Enabled verbose msgs: all
> > > 2021-01-26 22:55:35.201415 N Setting Log Level to LOG_DEBUG
> > > 2021-01-26 22:55:35.212913 I : Buffer: Ready for data.
> > > 2021-01-26 22:55:35.212956 I Added logging to the console
> > > 2021-01-26 22:55:35.212986 I : Command parser ready.
> > > 2021-01-26 22:55:35.213774 D New Logging Client: ID: (#1)
> > > 2021-01-26 22:55:35.231943 I Channels in
> > >
> '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf',
> > > Tuner: '', Scanner: ''
> > > ^C
> > >
> > > What can I do to debug this problem?
> > >
> > > Please let me know if I should provide additional information.
> > >
> > > cat /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > >
> > > [RECORDER]
> > > # The recorder command to execute. %URL% is optional, and
> > > # will be replaced with the channel's "URL" as defined in the
> > > # [TUNER/channels] (channel conf) configuration file
> > > #command="cvlc \"%URL%\" --sout \"#std{mux=ts,access=file,dst=-}\""
> > > command="streamlink --player=vlc --stdout \"%URL%\" best"
> > >
> > > # Used in logging events, %ARG% are replaced from the channel info
> > > desc=streamlink \"%URL%\" \"%CHANNUM%\" \"%CHANNAME%\" \"%CALLSIGN%\"
> > >
> > > [TUNER]
> > > # An optional CONF file which provides channel details. If it does not
> > > # exist, then channel changes are not supported.
> > > channels=mythtv-svtplay-external-recorder-channels.conf
> > >
> > > # If [TUNER/command] is provided, it will be executed to "tune" the
> > > # channel. A %URL% parameter will be substituted with the "URL" as
> > > # defined in the [TUNER/channels] configuration file
> > > #command=
> > >
> > > # Timeout for changing channels in msecs
> > > #timeout=
> > >
> > > [SCANNER]
> > > # When MythTV scans for channels, The contents of the [TUNER/channels]
> > > # config file are used to populate MythTV's channel information.
> > > # If a command is provided here, it will be executed first, so it can
> > > # populate the [TUNER/channels] config file
> > > #command=/home/myth/bin/scan.sh "%CHANCONF%"
> > >
> > > # Timeout for scan command in msecs
> > > #timeout=60000
> > >
> > >
> > > cat
> > > /home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf
> > >
> > > [1]
> > > NAME=SVT1 HD
> > > CALLSIGN=SVT1HD
> > > XMLTVID=svt1.svt.se
> > > URL="https://www.svtplay.se/kanaler/svt1?start=auto"
> > > ICON=/home/mythtv/.mythtv/channels/svt1.svt.se.png
> > >
> > > [2]
> > > NAME=SVT2 HD
> > > CALLSIGN=SVT2HD
> > > XMLTVID=svt2.svt.se
> > > URL="https://www.svtplay.se/kanaler/svt2?start=auto"
> > > ICON=/home/mythtv/.mythtv/channels/svt2.svt.se.png
> > >
> > > [3]
> > > NAME=Kunskapskanalen
> > > CALLSIGN=Kunskapskanalen
> > > XMLTVID=kunskapskanalen.svt.se
> > > URL="https://www.svtplay.se/kanaler/kunskapskanalen?start=auto"
> > > ICON=/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> > >
> > > [4]
> > > NAME=Barnkanalen
> > > CALLSIGN=Barnkanalen
> > > XMLTVID=barnkanalen.svt.se
> > > URL="https://www.svtplay.se/kanaler/svtbarn?start=auto"
> > > ICON=/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> > >
> > > [5]
> > > NAME=SVT24
> > > CALLSIGN=SVT24
> > > XMLTVID=svt24.svt.se
> > > URL="https://www.svtplay.se/kanaler/svt24?start=auto"
> > > ICON=/home/mythtv/.mythtv/channels/svt24.svt.se.png
> > >
> > >
> > Hi Peter,
> >
> > The behavior you describe is correct. At that point mythexternrecorder is
> > expecting to be given commands from mythackend. For example, instead of
> > hitting CTRL-C where you did, you could type:
> > APIVersion?
> > and it should spit out something like
> > OK:2
> >
> > If you look at https://www.mythtv.org/wiki/ExternalRecorder you can see
> the
> > commands that are allowed. With APIVersion2, the serial number at the
> > beginning of each command should be incremented.
>
> Hello John,
>
> Thanks for you answer. I tried to send some commands and they all seems
> to work until I try to send TuneStatus? where I would have expected
> '9:OK:Tuned to 1' or similar. Am I on the right track and is this
> indicating that something is wrong?
>
> It seems that although I add arguments '--loglevel debug --verbose' I
> don't get that much help of the output.
>
> I can call streamlink directly and get a stream that I can watch in VLC.
>
> mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose
> 2021-01-31 22:58:06.872700 C mythexternrecorder version: [v31.0]
> www.mythtv.org
> 2021-01-31 22:58:06.872720 C Qt version: compile: 5.11.3, runtime: 5.11.3
> 2021-01-31 22:58:06.872748 I Debian GNU/Linux 10 (buster) (x86_64)
> 2021-01-31 22:58:06.872750 N Enabled verbose msgs: general
> 2021-01-31 22:58:06.872760 N Setting Log Level to LOG_DEBUG
> 2021-01-31 22:58:06.883132 I Added logging to the console
> 1::HasTuner?
> 1:OK:Yes
> 2::LoadChannels
> 2:OK:5
> 3::FirstChannel
> 3:OK:1,SVT1 HD,SVT1HD,svt1.svt.se
> ,/home/mythtv/.mythtv/channels/svt1.svt.se.png
> 4:NextChannel
> 4:OK:2,SVT2 HD,SVT2HD,svt2.svt.se
> ,/home/mythtv/.mythtv/channels/svt2.svt.se.png
> 5:NextChannel
> 5:OK:3,Kunskapskanalen,Kunskapskanalen,kunskapskanalen.svt.se
> ,/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> 6:NextChannel
> 6:OK:4,Barnkanalen,Barnkanalen,barnkanalen.svt.se
> ,/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> 7:NextChannel
> 7:OK:5,SVT24,SVT24,svt24.svt.se
> ,/home/mythtv/.mythtv/channels/svt24.svt.se.png
> 8:TuneChannel:1
> 8:OK:Tuned to 1
> 9:TuneStatus?
> 9:OK:Tuned to
>
> /Peter
>

Hi Peter,

Sorry for the slow responses. I have some other things going on.

As far as the TuneStatus? response, that could be a minor bug. mythbackend
will only issue that command if TuneChannel: returns "OK:InProgress". In
your example it returned "OK:Tuned to 1" so mythbackend would never have
issued "TuneStatus?", therefore I never noticed that the response was poor.
I will take a look at that.

mythbackend will normally send the following commands after the channel is
tuned:
Description?
SignalStrengthPercent?
HasLock?
IsOpen?
Those are just to gather information. It will then do:
StartStreaming
XON
Which tells mythexternrecorder to actually start processing data. The
transport stream will be parsed so mythtv can verify that it is valid. Then
the stream will be shut down:
XOFF
Version?
StopStreaming
...
Then mythbackend is finally ready to start recording, so it will start the
stream back up:
...
StartStreaming
XON
and mythexternrecorder will pass the transport stream to mythbackend for it
to record.

When mythbackend invokes mythexternrecorder it passes arguments such as
--logpath to it. Wherever the mythbackend logs are stored (e.g.
/var/log/mythtv) you should also find mythexternrecorder log files. If
mythbackend is started up with "--logpath /var/log/mythtv -v
channel,record" then mythexternrecorder will as well. When debugging
recording issues make sure you have told mythbackend to run with "-v
channel,record".

John
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Tue, Feb 02, 2021 at 01:13:23PM -0700, John P Poet wrote:
> On Sun, Jan 31, 2021 at 3:10 PM Peter Carlsson <maillist.peter@home.se>
> wrote:
>
> > On Sat, Jan 30, 2021 at 03:01:02PM -0700, John P Poet wrote:
> > > On Tue, Jan 26, 2021 at 3:11 PM Peter Carlsson <maillist.peter@home.se>
> > > wrote:
> > >
> > > > Hello!
> > > >
> > > > I had MythTV setup using the ExternalRecorder together with streamlink.
> > > >
> > > > Last summer the svtplay plugin for streamlink stopped working and I
> > > > temporarily stopped using it by changing the recording priority to use
> > > > another recorder.
> > > >
> > > > In streamlink version 1.6.0 (2020-09-22) it was fixed (by Ian Cameron)
> > > > and I verified in streamlink that it worked but I never took the time
> > to
> > > > change back the recording priority until recently.
> > > >
> > > > But I can not get it to work again. I don't remember to have done
> > > > anything else specific to the original problem but much has changed
> > > > since then.
> > > >
> > > > MythTV has been upgraded to version 31 and streamlink to version 2.0.0
> > > > where streamlink has dropped support for Python 2 and Python 3.5 and
> > > > MythTV added support for Python 3.
> > > >
> > > > I use Debian Buster and have both Python 2.7 and 3.7 installed.
> > > >
> > > > I tried he following but it just stops at the last line below.
> > > >
> > > > mythexternrecorder --conf
> > > > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > --loglevel
> > > > debug --verbose all
> > > > 2021-01-26 22:55:35.201299 C mythexternrecorder version: [v31.0]
> > > > www.mythtv.org
> > > > 2021-01-26 22:55:35.201337 C Qt version: compile: 5.11.3, runtime:
> > 5.11.3
> > > > 2021-01-26 22:55:35.201391 I Debian GNU/Linux 10 (buster) (i386)
> > > > 2021-01-26 22:55:35.201394 N Enabled verbose msgs: all
> > > > 2021-01-26 22:55:35.201415 N Setting Log Level to LOG_DEBUG
> > > > 2021-01-26 22:55:35.212913 I : Buffer: Ready for data.
> > > > 2021-01-26 22:55:35.212956 I Added logging to the console
> > > > 2021-01-26 22:55:35.212986 I : Command parser ready.
> > > > 2021-01-26 22:55:35.213774 D New Logging Client: ID: (#1)
> > > > 2021-01-26 22:55:35.231943 I Channels in
> > > >
> > '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf',
> > > > Tuner: '', Scanner: ''
> > > > ^C
> > > >
> > > > What can I do to debug this problem?
> > > >
> > > > Please let me know if I should provide additional information.
> > > >
> > > > cat /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > > >
> > > > [RECORDER]
> > > > # The recorder command to execute. %URL% is optional, and
> > > > # will be replaced with the channel's "URL" as defined in the
> > > > # [TUNER/channels] (channel conf) configuration file
> > > > #command="cvlc \"%URL%\" --sout \"#std{mux=ts,access=file,dst=-}\""
> > > > command="streamlink --player=vlc --stdout \"%URL%\" best"
> > > >
> > > > # Used in logging events, %ARG% are replaced from the channel info
> > > > desc=streamlink \"%URL%\" \"%CHANNUM%\" \"%CHANNAME%\" \"%CALLSIGN%\"
> > > >
> > > > [TUNER]
> > > > # An optional CONF file which provides channel details. If it does not
> > > > # exist, then channel changes are not supported.
> > > > channels=mythtv-svtplay-external-recorder-channels.conf
> > > >
> > > > # If [TUNER/command] is provided, it will be executed to "tune" the
> > > > # channel. A %URL% parameter will be substituted with the "URL" as
> > > > # defined in the [TUNER/channels] configuration file
> > > > #command=
> > > >
> > > > # Timeout for changing channels in msecs
> > > > #timeout=
> > > >
> > > > [SCANNER]
> > > > # When MythTV scans for channels, The contents of the [TUNER/channels]
> > > > # config file are used to populate MythTV's channel information.
> > > > # If a command is provided here, it will be executed first, so it can
> > > > # populate the [TUNER/channels] config file
> > > > #command=/home/myth/bin/scan.sh "%CHANCONF%"
> > > >
> > > > # Timeout for scan command in msecs
> > > > #timeout=60000
> > > >
> > > >
> > > > cat
> > > > /home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf
> > > >
> > > > [1]
> > > > NAME=SVT1 HD
> > > > CALLSIGN=SVT1HD
> > > > XMLTVID=svt1.svt.se
> > > > URL="https://www.svtplay.se/kanaler/svt1?start=auto"
> > > > ICON=/home/mythtv/.mythtv/channels/svt1.svt.se.png
> > > >
> > > > [2]
> > > > NAME=SVT2 HD
> > > > CALLSIGN=SVT2HD
> > > > XMLTVID=svt2.svt.se
> > > > URL="https://www.svtplay.se/kanaler/svt2?start=auto"
> > > > ICON=/home/mythtv/.mythtv/channels/svt2.svt.se.png
> > > >
> > > > [3]
> > > > NAME=Kunskapskanalen
> > > > CALLSIGN=Kunskapskanalen
> > > > XMLTVID=kunskapskanalen.svt.se
> > > > URL="https://www.svtplay.se/kanaler/kunskapskanalen?start=auto"
> > > > ICON=/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> > > >
> > > > [4]
> > > > NAME=Barnkanalen
> > > > CALLSIGN=Barnkanalen
> > > > XMLTVID=barnkanalen.svt.se
> > > > URL="https://www.svtplay.se/kanaler/svtbarn?start=auto"
> > > > ICON=/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> > > >
> > > > [5]
> > > > NAME=SVT24
> > > > CALLSIGN=SVT24
> > > > XMLTVID=svt24.svt.se
> > > > URL="https://www.svtplay.se/kanaler/svt24?start=auto"
> > > > ICON=/home/mythtv/.mythtv/channels/svt24.svt.se.png
> > > >
> > > >
> > > Hi Peter,
> > >
> > > The behavior you describe is correct. At that point mythexternrecorder is
> > > expecting to be given commands from mythackend. For example, instead of
> > > hitting CTRL-C where you did, you could type:
> > > APIVersion?
> > > and it should spit out something like
> > > OK:2
> > >
> > > If you look at https://www.mythtv.org/wiki/ExternalRecorder you can see
> > the
> > > commands that are allowed. With APIVersion2, the serial number at the
> > > beginning of each command should be incremented.
> >
> > Hello John,
> >
> > Thanks for you answer. I tried to send some commands and they all seems
> > to work until I try to send TuneStatus? where I would have expected
> > '9:OK:Tuned to 1' or similar. Am I on the right track and is this
> > indicating that something is wrong?
> >
> > It seems that although I add arguments '--loglevel debug --verbose' I
> > don't get that much help of the output.
> >
> > I can call streamlink directly and get a stream that I can watch in VLC.
> >
> > mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose
> > 2021-01-31 22:58:06.872700 C mythexternrecorder version: [v31.0]
> > www.mythtv.org
> > 2021-01-31 22:58:06.872720 C Qt version: compile: 5.11.3, runtime: 5.11.3
> > 2021-01-31 22:58:06.872748 I Debian GNU/Linux 10 (buster) (x86_64)
> > 2021-01-31 22:58:06.872750 N Enabled verbose msgs: general
> > 2021-01-31 22:58:06.872760 N Setting Log Level to LOG_DEBUG
> > 2021-01-31 22:58:06.883132 I Added logging to the console
> > 1::HasTuner?
> > 1:OK:Yes
> > 2::LoadChannels
> > 2:OK:5
> > 3::FirstChannel
> > 3:OK:1,SVT1 HD,SVT1HD,svt1.svt.se
> > ,/home/mythtv/.mythtv/channels/svt1.svt.se.png
> > 4:NextChannel
> > 4:OK:2,SVT2 HD,SVT2HD,svt2.svt.se
> > ,/home/mythtv/.mythtv/channels/svt2.svt.se.png
> > 5:NextChannel
> > 5:OK:3,Kunskapskanalen,Kunskapskanalen,kunskapskanalen.svt.se
> > ,/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> > 6:NextChannel
> > 6:OK:4,Barnkanalen,Barnkanalen,barnkanalen.svt.se
> > ,/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> > 7:NextChannel
> > 7:OK:5,SVT24,SVT24,svt24.svt.se
> > ,/home/mythtv/.mythtv/channels/svt24.svt.se.png
> > 8:TuneChannel:1
> > 8:OK:Tuned to 1
> > 9:TuneStatus?
> > 9:OK:Tuned to
> >
> > /Peter
> >
>
> Hi Peter,
>
> Sorry for the slow responses. I have some other things going on.
>
> As far as the TuneStatus? response, that could be a minor bug. mythbackend
> will only issue that command if TuneChannel: returns "OK:InProgress". In
> your example it returned "OK:Tuned to 1" so mythbackend would never have
> issued "TuneStatus?", therefore I never noticed that the response was poor.
> I will take a look at that.
>
> mythbackend will normally send the following commands after the channel is
> tuned:
> Description?
> SignalStrengthPercent?
> HasLock?
> IsOpen?
> Those are just to gather information. It will then do:
> StartStreaming
> XON
> Which tells mythexternrecorder to actually start processing data. The
> transport stream will be parsed so mythtv can verify that it is valid. Then
> the stream will be shut down:
> XOFF
> Version?
> StopStreaming
> ..
> Then mythbackend is finally ready to start recording, so it will start the
> stream back up:
> ..
> StartStreaming
> XON
> and mythexternrecorder will pass the transport stream to mythbackend for it
> to record.
>
> When mythbackend invokes mythexternrecorder it passes arguments such as
> --logpath to it. Wherever the mythbackend logs are stored (e.g.
> /var/log/mythtv) you should also find mythexternrecorder log files. If
> mythbackend is started up with "--logpath /var/log/mythtv -v
> channel,record" then mythexternrecorder will as well. When debugging
> recording issues make sure you have told mythbackend to run with "-v
> channel,record".

Hello John,

I very much appreciate your help!

I added more logging as you suggested. Don't know why it is truncated in
the log messages.

Do you make anything out of the log messages?

What would be my next step?

Best regards,
Peter Carlsson

Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.285294 I ExternChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): Open()
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.286900 I ChannelBase[21]: Input #21: 'MPEG2TS' schan(1) sourceid(4)
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287222 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): args "--conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha --verbose general,channel,record --logpath
/var/log/mythtv --loglevel info --quiet --inputid 21"
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287275 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): Spawn '/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha'
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287281 I ExternIO::Run()
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.308616 I ExternIO::Fork 'mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha --verbose general,channel,record --logpath /var/log/mythtv --loglevel info --quiet --inputid 21'
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.314137 I Spawned
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.567769 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessCommand('APIVersion?') = 'OK:2' took 243ms
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.567940 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessV2('1:APIVersion:2') = 'OK:2' took 0ms
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.568051 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessV2('2:Version?') = 'OK:0.6' took 0ms
Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.568173 W ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessV2('3:Description?') = 'WARN:Not set' took 0ms <-- NOTE
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.570731 E ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessVer2: Giving up waiting for response for command '4:HasTuner?'
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.577774 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessV2('5:HasTuner?') = 'OK:Yes' took 6ms
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.588000 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessV2('6:HasPictureAttributes?') = 'OK:No' took 10ms
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.588178 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessV2('7:FlowControl?') = 'OK:XON/XOFF' took 0ms
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.588194 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): App opened successfully
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.588224 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): Capabilities: tuner(yes) Picture attributes(no) Flow control(XON/XOFF)
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.598156 I ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): ProcessV2('8:BlockSize:1540096') = 'OK' took 9ms
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.598179 I ExternSH[21]: Creating new stream handler 21 for /usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.598193 I ExternChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): Opened
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.598205 I DTVChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): SetChannelByString(1):
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.598219 I CardUtil[21]: GetConflictingInputs() input 21
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.599105 I CardUtil[21]: GetConflictingInputs() got input 22
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.599147 I CardUtil[21]: GetConflictingInputs() got input 23
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.599167 I CardUtil[21]: GetConflictingInputs() got input 24
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.599233 I ChannelBase[21]: Input is free on 0/0
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601241 E DTVMux: ParseTuningParams -- Unknown tuner type = 0xffffffff80000000
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601295 E DTVChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): SetChannelByString(1): Failed to initialize multiplex options
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601306 I DTVChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel debug --verbose cha): SetChannelByString(1): failure
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601321 E TVRec[21]: Failed to set channel to 1. Reverting to kState_None
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601355 I TVRec[21]: Changing from WatchingLiveTV to None
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601392 I TVRec[21]: ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop, @ tv_rec.cpp:1291
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601412 I TVRec[21]: HandleTuning Request: Program(NULL) channel() input() flags(KillRec,KillRingBuffer,)
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601439 I TVRec[21]: TuningShutdowns(Program(NULL) channel() input() flags(KillRec,KillRingBuffer,))
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601473 I TVRec[21]: ClearFlags(PENDINGACTIONS,) -> RunMainLoop, @ tv_rec.cpp:3640
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.601582 I TVRec[21]: SetFlags(CancelNextRecording,) -> RunMainLoop,CancelNextRecording, @ tv_rec.cpp:2691
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.668791 I MainServer: MainServer::ANN Playback
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.668815 I MainServer: adding: server(168bfa0) as a client (events: 0)
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.686075 I MainServer: adding: server(168a9b0) as a file transfer
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.696841 I FileTransfer sock(1652c90) disconnected
Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.699146 I Playback sock(a4e8a0e0) 'server' disconnected
Feb 10 22:09:50 htpc mythbackend[1097]: 2021-02-10 22:09:50.700293 I Playback sock(90649d90) 'server' disconnected
Feb 10 22:09:50 htpc mythbackend[1097]: 2021-02-10 22:09:50.726349 I FileTransfer sock(168a9b0) disconnected
Feb 10 22:09:50 htpc mythbackend[1097]: 2021-02-10 22:09:50.736473 I Playback sock(168bfa0) 'server' disconnected
Feb 10 22:10:00 htpc mythbackend[1097]: 2021-02-10 22:10:00.772972 I TVRec[1]: ClearFlags(FinishRecording,) -> RunMainLoop,RecorderRunning,RingBufferReady, @ tv_rec.cpp:1329
Feb 10 22:10:00 htpc mythbackend[1097]: 2021-02-10 22:10:00.773027 I TVRec[1]: Changing from RecordingOnly to None
Feb 10 22:10:00 htpc mythbackend[1097]: 2021-02-10 22:10:00.773570 I TVRec[1]: ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop,RecorderRunning,RingBufferReady, @ tv_rec.cpp:1291
Feb 10 22:10:00 htpc mythbackend[1097]: 2021-02-10 22:10:00.773611 I TVRec[1]: HandleTuning Request: Program(NULL) channel() input() flags(CloseRec,KillRingBuffer,)
Feb 10 22:10:00 htpc mythbackend[1097]: 2021-02-10 22:10:00.773648 I TVRec[1]: TuningShutdowns(Program(NULL) channel() input() flags(CloseRec,KillRingBuffer,))
Feb 10 22:10:00 htpc mythbackend[1097]: 2021-02-10 22:10:00.773667 I TVRec[1]: TeardownRecorder()
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Wed, Feb 10, 2021 at 2:30 PM Peter Carlsson <maillist.peter@home.se>
wrote:

> On Tue, Feb 02, 2021 at 01:13:23PM -0700, John P Poet wrote:
> > On Sun, Jan 31, 2021 at 3:10 PM Peter Carlsson <maillist.peter@home.se>
> > wrote:
> >
> > > On Sat, Jan 30, 2021 at 03:01:02PM -0700, John P Poet wrote:
> > > > On Tue, Jan 26, 2021 at 3:11 PM Peter Carlsson <
> maillist.peter@home.se>
> > > > wrote:
> > > >
> > > > > Hello!
> > > > >
> > > > > I had MythTV setup using the ExternalRecorder together with
> streamlink.
> > > > >
> > > > > Last summer the svtplay plugin for streamlink stopped working and I
> > > > > temporarily stopped using it by changing the recording priority to
> use
> > > > > another recorder.
> > > > >
> > > > > In streamlink version 1.6.0 (2020-09-22) it was fixed (by Ian
> Cameron)
> > > > > and I verified in streamlink that it worked but I never took the
> time
> > > to
> > > > > change back the recording priority until recently.
> > > > >
> > > > > But I can not get it to work again. I don't remember to have done
> > > > > anything else specific to the original problem but much has changed
> > > > > since then.
> > > > >
> > > > > MythTV has been upgraded to version 31 and streamlink to version
> 2.0.0
> > > > > where streamlink has dropped support for Python 2 and Python 3.5
> and
> > > > > MythTV added support for Python 3.
> > > > >
> > > > > I use Debian Buster and have both Python 2.7 and 3.7 installed.
> > > > >
> > > > > I tried he following but it just stops at the last line below.
> > > > >
> > > > > mythexternrecorder --conf
> > > > > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > > --loglevel
> > > > > debug --verbose all
> > > > > 2021-01-26 22:55:35.201299 C mythexternrecorder version: [v31.0]
> > > > > www.mythtv.org
> > > > > 2021-01-26 22:55:35.201337 C Qt version: compile: 5.11.3, runtime:
> > > 5.11.3
> > > > > 2021-01-26 22:55:35.201391 I Debian GNU/Linux 10 (buster) (i386)
> > > > > 2021-01-26 22:55:35.201394 N Enabled verbose msgs: all
> > > > > 2021-01-26 22:55:35.201415 N Setting Log Level to LOG_DEBUG
> > > > > 2021-01-26 22:55:35.212913 I : Buffer: Ready for data.
> > > > > 2021-01-26 22:55:35.212956 I Added logging to the console
> > > > > 2021-01-26 22:55:35.212986 I : Command parser ready.
> > > > > 2021-01-26 22:55:35.213774 D New Logging Client: ID: (#1)
> > > > > 2021-01-26 22:55:35.231943 I Channels in
> > > > >
> > >
> '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf',
> > > > > Tuner: '', Scanner: ''
> > > > > ^C
> > > > >
> > > > > What can I do to debug this problem?
> > > > >
> > > > > Please let me know if I should provide additional information.
> > > > >
> > > > > cat /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > > > >
> > > > > [RECORDER]
> > > > > # The recorder command to execute. %URL% is optional, and
> > > > > # will be replaced with the channel's "URL" as defined in the
> > > > > # [TUNER/channels] (channel conf) configuration file
> > > > > #command="cvlc \"%URL%\" --sout \"#std{mux=ts,access=file,dst=-}\""
> > > > > command="streamlink --player=vlc --stdout \"%URL%\" best"
> > > > >
> > > > > # Used in logging events, %ARG% are replaced from the channel info
> > > > > desc=streamlink \"%URL%\" \"%CHANNUM%\" \"%CHANNAME%\"
> \"%CALLSIGN%\"
> > > > >
> > > > > [TUNER]
> > > > > # An optional CONF file which provides channel details. If it
> does not
> > > > > # exist, then channel changes are not supported.
> > > > > channels=mythtv-svtplay-external-recorder-channels.conf
> > > > >
> > > > > # If [TUNER/command] is provided, it will be executed to "tune" the
> > > > > # channel. A %URL% parameter will be substituted with the "URL" as
> > > > > # defined in the [TUNER/channels] configuration file
> > > > > #command=
> > > > >
> > > > > # Timeout for changing channels in msecs
> > > > > #timeout=
> > > > >
> > > > > [SCANNER]
> > > > > # When MythTV scans for channels, The contents of the
> [TUNER/channels]
> > > > > # config file are used to populate MythTV's channel information.
> > > > > # If a command is provided here, it will be executed first, so it
> can
> > > > > # populate the [TUNER/channels] config file
> > > > > #command=/home/myth/bin/scan.sh "%CHANCONF%"
> > > > >
> > > > > # Timeout for scan command in msecs
> > > > > #timeout=60000
> > > > >
> > > > >
> > > > > cat
> > > > >
> /home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf
> > > > >
> > > > > [1]
> > > > > NAME=SVT1 HD
> > > > > CALLSIGN=SVT1HD
> > > > > XMLTVID=svt1.svt.se
> > > > > URL="https://www.svtplay.se/kanaler/svt1?start=auto"
> > > > > ICON=/home/mythtv/.mythtv/channels/svt1.svt.se.png
> > > > >
> > > > > [2]
> > > > > NAME=SVT2 HD
> > > > > CALLSIGN=SVT2HD
> > > > > XMLTVID=svt2.svt.se
> > > > > URL="https://www.svtplay.se/kanaler/svt2?start=auto"
> > > > > ICON=/home/mythtv/.mythtv/channels/svt2.svt.se.png
> > > > >
> > > > > [3]
> > > > > NAME=Kunskapskanalen
> > > > > CALLSIGN=Kunskapskanalen
> > > > > XMLTVID=kunskapskanalen.svt.se
> > > > > URL="https://www.svtplay.se/kanaler/kunskapskanalen?start=auto"
> > > > > ICON=/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> > > > >
> > > > > [4]
> > > > > NAME=Barnkanalen
> > > > > CALLSIGN=Barnkanalen
> > > > > XMLTVID=barnkanalen.svt.se
> > > > > URL="https://www.svtplay.se/kanaler/svtbarn?start=auto"
> > > > > ICON=/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> > > > >
> > > > > [5]
> > > > > NAME=SVT24
> > > > > CALLSIGN=SVT24
> > > > > XMLTVID=svt24.svt.se
> > > > > URL="https://www.svtplay.se/kanaler/svt24?start=auto"
> > > > > ICON=/home/mythtv/.mythtv/channels/svt24.svt.se.png
> > > > >
> > > > >
> > > > Hi Peter,
> > > >
> > > > The behavior you describe is correct. At that point
> mythexternrecorder is
> > > > expecting to be given commands from mythackend. For example, instead
> of
> > > > hitting CTRL-C where you did, you could type:
> > > > APIVersion?
> > > > and it should spit out something like
> > > > OK:2
> > > >
> > > > If you look at https://www.mythtv.org/wiki/ExternalRecorder you can
> see
> > > the
> > > > commands that are allowed. With APIVersion2, the serial number at the
> > > > beginning of each command should be incremented.
> > >
> > > Hello John,
> > >
> > > Thanks for you answer. I tried to send some commands and they all seems
> > > to work until I try to send TuneStatus? where I would have expected
> > > '9:OK:Tuned to 1' or similar. Am I on the right track and is this
> > > indicating that something is wrong?
> > >
> > > It seems that although I add arguments '--loglevel debug --verbose' I
> > > don't get that much help of the output.
> > >
> > > I can call streamlink directly and get a stream that I can watch in
> VLC.
> > >
> > > mythexternrecorder --conf
> > > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> --loglevel
> > > debug --verbose
> > > 2021-01-31 22:58:06.872700 C mythexternrecorder version: [v31.0]
> > > www.mythtv.org
> > > 2021-01-31 22:58:06.872720 C Qt version: compile: 5.11.3, runtime:
> 5.11.3
> > > 2021-01-31 22:58:06.872748 I Debian GNU/Linux 10 (buster) (x86_64)
> > > 2021-01-31 22:58:06.872750 N Enabled verbose msgs: general
> > > 2021-01-31 22:58:06.872760 N Setting Log Level to LOG_DEBUG
> > > 2021-01-31 22:58:06.883132 I Added logging to the console
> > > 1::HasTuner?
> > > 1:OK:Yes
> > > 2::LoadChannels
> > > 2:OK:5
> > > 3::FirstChannel
> > > 3:OK:1,SVT1 HD,SVT1HD,svt1.svt.se
> > > ,/home/mythtv/.mythtv/channels/svt1.svt.se.png
> > > 4:NextChannel
> > > 4:OK:2,SVT2 HD,SVT2HD,svt2.svt.se
> > > ,/home/mythtv/.mythtv/channels/svt2.svt.se.png
> > > 5:NextChannel
> > > 5:OK:3,Kunskapskanalen,Kunskapskanalen,kunskapskanalen.svt.se
> > > ,/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> > > 6:NextChannel
> > > 6:OK:4,Barnkanalen,Barnkanalen,barnkanalen.svt.se
> > > ,/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> > > 7:NextChannel
> > > 7:OK:5,SVT24,SVT24,svt24.svt.se
> > > ,/home/mythtv/.mythtv/channels/svt24.svt.se.png
> > > 8:TuneChannel:1
> > > 8:OK:Tuned to 1
> > > 9:TuneStatus?
> > > 9:OK:Tuned to
> > >
> > > /Peter
> > >
> >
> > Hi Peter,
> >
> > Sorry for the slow responses. I have some other things going on.
> >
> > As far as the TuneStatus? response, that could be a minor bug.
> mythbackend
> > will only issue that command if TuneChannel: returns "OK:InProgress". In
> > your example it returned "OK:Tuned to 1" so mythbackend would never have
> > issued "TuneStatus?", therefore I never noticed that the response was
> poor.
> > I will take a look at that.
> >
> > mythbackend will normally send the following commands after the channel
> is
> > tuned:
> > Description?
> > SignalStrengthPercent?
> > HasLock?
> > IsOpen?
> > Those are just to gather information. It will then do:
> > StartStreaming
> > XON
> > Which tells mythexternrecorder to actually start processing data. The
> > transport stream will be parsed so mythtv can verify that it is valid.
> Then
> > the stream will be shut down:
> > XOFF
> > Version?
> > StopStreaming
> > ..
> > Then mythbackend is finally ready to start recording, so it will start
> the
> > stream back up:
> > ..
> > StartStreaming
> > XON
> > and mythexternrecorder will pass the transport stream to mythbackend for
> it
> > to record.
> >
> > When mythbackend invokes mythexternrecorder it passes arguments such as
> > --logpath to it. Wherever the mythbackend logs are stored (e.g.
> > /var/log/mythtv) you should also find mythexternrecorder log files. If
> > mythbackend is started up with "--logpath /var/log/mythtv -v
> > channel,record" then mythexternrecorder will as well. When debugging
> > recording issues make sure you have told mythbackend to run with "-v
> > channel,record".
>
> Hello John,
>
> I very much appreciate your help!
>
> I added more logging as you suggested. Don't know why it is truncated in
> the log messages.
>
> Do you make anything out of the log messages?
>
> What would be my next step?
>
> Best regards,
> Peter Carlsson
>
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.285294 I
> ExternChan[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha): Open()
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.286900 I
> ChannelBase[21]: Input #21: 'MPEG2TS' schan(1) sourceid(4)
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287222 I
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha): args "--conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha --verbose general,channel,record --logpath
> /var/log/mythtv --loglevel info --quiet --inputid 21"
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287275 I
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha): Spawn '/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha'
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287281 I
> ExternIO::Run()
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.308616 I
> ExternIO::Fork 'mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha --verbose general,channel,record --logpath
> /var/log/mythtv --loglevel info --quiet --inputid 21'
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.314137 I
> Spawned
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.567769 I
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha): ProcessCommand('APIVersion?') = 'OK:2' took 243ms
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.567940 I
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha): ProcessV2('1:APIVersion:2') = 'OK:2' took 0ms
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.568051 I
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha): ProcessV2('2:Version?') = 'OK:0.6' took 0ms
> Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.568173 W
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha): ProcessV2('3:Description?') = 'WARN:Not set' took 0ms
> <-- NOTE
> Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.570731 E
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> debug --verbose cha): ProcessVer2: Giving up waiting for response for
> command '4:HasTuner?'
> <snip>
>

Is it possible that there is a wedged copy of mythexternrecorder running
which is interfering?
What does the mythexternrecorder log file have in it?

John
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Wed, Feb 10, 2021 at 03:21:14PM -0700, John P Poet wrote:
> On Wed, Feb 10, 2021 at 2:30 PM Peter Carlsson <maillist.peter@home.se>
> wrote:
>
> > On Tue, Feb 02, 2021 at 01:13:23PM -0700, John P Poet wrote:
> > > On Sun, Jan 31, 2021 at 3:10 PM Peter Carlsson <maillist.peter@home.se>
> > > wrote:
> > >
> > > > On Sat, Jan 30, 2021 at 03:01:02PM -0700, John P Poet wrote:
> > > > > On Tue, Jan 26, 2021 at 3:11 PM Peter Carlsson <
> > maillist.peter@home.se>
> > > > > wrote:
> > > > >
> > > > > > Hello!
> > > > > >
> > > > > > I had MythTV setup using the ExternalRecorder together with
> > streamlink.
> > > > > >
> > > > > > Last summer the svtplay plugin for streamlink stopped working and I
> > > > > > temporarily stopped using it by changing the recording priority to
> > use
> > > > > > another recorder.
> > > > > >
> > > > > > In streamlink version 1.6.0 (2020-09-22) it was fixed (by Ian
> > Cameron)
> > > > > > and I verified in streamlink that it worked but I never took the
> > time
> > > > to
> > > > > > change back the recording priority until recently.
> > > > > >
> > > > > > But I can not get it to work again. I don't remember to have done
> > > > > > anything else specific to the original problem but much has changed
> > > > > > since then.
> > > > > >
> > > > > > MythTV has been upgraded to version 31 and streamlink to version
> > 2.0.0
> > > > > > where streamlink has dropped support for Python 2 and Python 3.5
> > and
> > > > > > MythTV added support for Python 3.
> > > > > >
> > > > > > I use Debian Buster and have both Python 2.7 and 3.7 installed.
> > > > > >
> > > > > > I tried he following but it just stops at the last line below.
> > > > > >
> > > > > > mythexternrecorder --conf
> > > > > > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > > > --loglevel
> > > > > > debug --verbose all
> > > > > > 2021-01-26 22:55:35.201299 C mythexternrecorder version: [v31.0]
> > > > > > www.mythtv.org
> > > > > > 2021-01-26 22:55:35.201337 C Qt version: compile: 5.11.3, runtime:
> > > > 5.11.3
> > > > > > 2021-01-26 22:55:35.201391 I Debian GNU/Linux 10 (buster) (i386)
> > > > > > 2021-01-26 22:55:35.201394 N Enabled verbose msgs: all
> > > > > > 2021-01-26 22:55:35.201415 N Setting Log Level to LOG_DEBUG
> > > > > > 2021-01-26 22:55:35.212913 I : Buffer: Ready for data.
> > > > > > 2021-01-26 22:55:35.212956 I Added logging to the console
> > > > > > 2021-01-26 22:55:35.212986 I : Command parser ready.
> > > > > > 2021-01-26 22:55:35.213774 D New Logging Client: ID: (#1)
> > > > > > 2021-01-26 22:55:35.231943 I Channels in
> > > > > >
> > > >
> > '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf',
> > > > > > Tuner: '', Scanner: ''
> > > > > > ^C
> > > > > >
> > > > > > What can I do to debug this problem?
> > > > > >
> > > > > > Please let me know if I should provide additional information.
> > > > > >
> > > > > > cat /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > > > > >
> > > > > > [RECORDER]
> > > > > > # The recorder command to execute. %URL% is optional, and
> > > > > > # will be replaced with the channel's "URL" as defined in the
> > > > > > # [TUNER/channels] (channel conf) configuration file
> > > > > > #command="cvlc \"%URL%\" --sout \"#std{mux=ts,access=file,dst=-}\""
> > > > > > command="streamlink --player=vlc --stdout \"%URL%\" best"
> > > > > >
> > > > > > # Used in logging events, %ARG% are replaced from the channel info
> > > > > > desc=streamlink \"%URL%\" \"%CHANNUM%\" \"%CHANNAME%\"
> > \"%CALLSIGN%\"
> > > > > >
> > > > > > [TUNER]
> > > > > > # An optional CONF file which provides channel details. If it
> > does not
> > > > > > # exist, then channel changes are not supported.
> > > > > > channels=mythtv-svtplay-external-recorder-channels.conf
> > > > > >
> > > > > > # If [TUNER/command] is provided, it will be executed to "tune" the
> > > > > > # channel. A %URL% parameter will be substituted with the "URL" as
> > > > > > # defined in the [TUNER/channels] configuration file
> > > > > > #command=
> > > > > >
> > > > > > # Timeout for changing channels in msecs
> > > > > > #timeout=
> > > > > >
> > > > > > [SCANNER]
> > > > > > # When MythTV scans for channels, The contents of the
> > [TUNER/channels]
> > > > > > # config file are used to populate MythTV's channel information.
> > > > > > # If a command is provided here, it will be executed first, so it
> > can
> > > > > > # populate the [TUNER/channels] config file
> > > > > > #command=/home/myth/bin/scan.sh "%CHANCONF%"
> > > > > >
> > > > > > # Timeout for scan command in msecs
> > > > > > #timeout=60000
> > > > > >
> > > > > >
> > > > > > cat
> > > > > >
> > /home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf
> > > > > >
> > > > > > [1]
> > > > > > NAME=SVT1 HD
> > > > > > CALLSIGN=SVT1HD
> > > > > > XMLTVID=svt1.svt.se
> > > > > > URL="https://www.svtplay.se/kanaler/svt1?start=auto"
> > > > > > ICON=/home/mythtv/.mythtv/channels/svt1.svt.se.png
> > > > > >
> > > > > > [2]
> > > > > > NAME=SVT2 HD
> > > > > > CALLSIGN=SVT2HD
> > > > > > XMLTVID=svt2.svt.se
> > > > > > URL="https://www.svtplay.se/kanaler/svt2?start=auto"
> > > > > > ICON=/home/mythtv/.mythtv/channels/svt2.svt.se.png
> > > > > >
> > > > > > [3]
> > > > > > NAME=Kunskapskanalen
> > > > > > CALLSIGN=Kunskapskanalen
> > > > > > XMLTVID=kunskapskanalen.svt.se
> > > > > > URL="https://www.svtplay.se/kanaler/kunskapskanalen?start=auto"
> > > > > > ICON=/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> > > > > >
> > > > > > [4]
> > > > > > NAME=Barnkanalen
> > > > > > CALLSIGN=Barnkanalen
> > > > > > XMLTVID=barnkanalen.svt.se
> > > > > > URL="https://www.svtplay.se/kanaler/svtbarn?start=auto"
> > > > > > ICON=/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> > > > > >
> > > > > > [5]
> > > > > > NAME=SVT24
> > > > > > CALLSIGN=SVT24
> > > > > > XMLTVID=svt24.svt.se
> > > > > > URL="https://www.svtplay.se/kanaler/svt24?start=auto"
> > > > > > ICON=/home/mythtv/.mythtv/channels/svt24.svt.se.png
> > > > > >
> > > > > >
> > > > > Hi Peter,
> > > > >
> > > > > The behavior you describe is correct. At that point
> > mythexternrecorder is
> > > > > expecting to be given commands from mythackend. For example, instead
> > of
> > > > > hitting CTRL-C where you did, you could type:
> > > > > APIVersion?
> > > > > and it should spit out something like
> > > > > OK:2
> > > > >
> > > > > If you look at https://www.mythtv.org/wiki/ExternalRecorder you can
> > see
> > > > the
> > > > > commands that are allowed. With APIVersion2, the serial number at the
> > > > > beginning of each command should be incremented.
> > > >
> > > > Hello John,
> > > >
> > > > Thanks for you answer. I tried to send some commands and they all seems
> > > > to work until I try to send TuneStatus? where I would have expected
> > > > '9:OK:Tuned to 1' or similar. Am I on the right track and is this
> > > > indicating that something is wrong?
> > > >
> > > > It seems that although I add arguments '--loglevel debug --verbose' I
> > > > don't get that much help of the output.
> > > >
> > > > I can call streamlink directly and get a stream that I can watch in
> > VLC.
> > > >
> > > > mythexternrecorder --conf
> > > > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > --loglevel
> > > > debug --verbose
> > > > 2021-01-31 22:58:06.872700 C mythexternrecorder version: [v31.0]
> > > > www.mythtv.org
> > > > 2021-01-31 22:58:06.872720 C Qt version: compile: 5.11.3, runtime:
> > 5.11.3
> > > > 2021-01-31 22:58:06.872748 I Debian GNU/Linux 10 (buster) (x86_64)
> > > > 2021-01-31 22:58:06.872750 N Enabled verbose msgs: general
> > > > 2021-01-31 22:58:06.872760 N Setting Log Level to LOG_DEBUG
> > > > 2021-01-31 22:58:06.883132 I Added logging to the console
> > > > 1::HasTuner?
> > > > 1:OK:Yes
> > > > 2::LoadChannels
> > > > 2:OK:5
> > > > 3::FirstChannel
> > > > 3:OK:1,SVT1 HD,SVT1HD,svt1.svt.se
> > > > ,/home/mythtv/.mythtv/channels/svt1.svt.se.png
> > > > 4:NextChannel
> > > > 4:OK:2,SVT2 HD,SVT2HD,svt2.svt.se
> > > > ,/home/mythtv/.mythtv/channels/svt2.svt.se.png
> > > > 5:NextChannel
> > > > 5:OK:3,Kunskapskanalen,Kunskapskanalen,kunskapskanalen.svt.se
> > > > ,/home/mythtv/.mythtv/channels/kunskapskanalen.svt.se.png
> > > > 6:NextChannel
> > > > 6:OK:4,Barnkanalen,Barnkanalen,barnkanalen.svt.se
> > > > ,/home/mythtv/.mythtv/channels/barnkanalen.svt.se.png
> > > > 7:NextChannel
> > > > 7:OK:5,SVT24,SVT24,svt24.svt.se
> > > > ,/home/mythtv/.mythtv/channels/svt24.svt.se.png
> > > > 8:TuneChannel:1
> > > > 8:OK:Tuned to 1
> > > > 9:TuneStatus?
> > > > 9:OK:Tuned to
> > > >
> > > > /Peter
> > > >
> > >
> > > Hi Peter,
> > >
> > > Sorry for the slow responses. I have some other things going on.
> > >
> > > As far as the TuneStatus? response, that could be a minor bug.
> > mythbackend
> > > will only issue that command if TuneChannel: returns "OK:InProgress". In
> > > your example it returned "OK:Tuned to 1" so mythbackend would never have
> > > issued "TuneStatus?", therefore I never noticed that the response was
> > poor.
> > > I will take a look at that.
> > >
> > > mythbackend will normally send the following commands after the channel
> > is
> > > tuned:
> > > Description?
> > > SignalStrengthPercent?
> > > HasLock?
> > > IsOpen?
> > > Those are just to gather information. It will then do:
> > > StartStreaming
> > > XON
> > > Which tells mythexternrecorder to actually start processing data. The
> > > transport stream will be parsed so mythtv can verify that it is valid.
> > Then
> > > the stream will be shut down:
> > > XOFF
> > > Version?
> > > StopStreaming
> > > ..
> > > Then mythbackend is finally ready to start recording, so it will start
> > the
> > > stream back up:
> > > ..
> > > StartStreaming
> > > XON
> > > and mythexternrecorder will pass the transport stream to mythbackend for
> > it
> > > to record.
> > >
> > > When mythbackend invokes mythexternrecorder it passes arguments such as
> > > --logpath to it. Wherever the mythbackend logs are stored (e.g.
> > > /var/log/mythtv) you should also find mythexternrecorder log files. If
> > > mythbackend is started up with "--logpath /var/log/mythtv -v
> > > channel,record" then mythexternrecorder will as well. When debugging
> > > recording issues make sure you have told mythbackend to run with "-v
> > > channel,record".
> >
> > Hello John,
> >
> > I very much appreciate your help!
> >
> > I added more logging as you suggested. Don't know why it is truncated in
> > the log messages.
> >
> > Do you make anything out of the log messages?
> >
> > What would be my next step?
> >
> > Best regards,
> > Peter Carlsson
> >
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.285294 I
> > ExternChan[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha): Open()
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.286900 I
> > ChannelBase[21]: Input #21: 'MPEG2TS' schan(1) sourceid(4)
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287222 I
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha): args "--conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha --verbose general,channel,record --logpath
> > /var/log/mythtv --loglevel info --quiet --inputid 21"
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287275 I
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha): Spawn '/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha'
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.287281 I
> > ExternIO::Run()
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.308616 I
> > ExternIO::Fork 'mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha --verbose general,channel,record --logpath
> > /var/log/mythtv --loglevel info --quiet --inputid 21'
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.314137 I
> > Spawned
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.567769 I
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha): ProcessCommand('APIVersion?') = 'OK:2' took 243ms
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.567940 I
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha): ProcessV2('1:APIVersion:2') = 'OK:2' took 0ms
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.568051 I
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha): ProcessV2('2:Version?') = 'OK:0.6' took 0ms
> > Feb 10 22:09:06 htpc mythbackend[1097]: 2021-02-10 22:09:06.568173 W
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha): ProcessV2('3:Description?') = 'WARN:Not set' took 0ms
> > <-- NOTE
> > Feb 10 22:09:10 htpc mythbackend[1097]: 2021-02-10 22:09:10.570731 E
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --loglevel
> > debug --verbose cha): ProcessVer2: Giving up waiting for response for
> > command '4:HasTuner?'
> > <snip>
> >
>
> Is it possible that there is a wedged copy of mythexternrecorder running
> which is interfering?

ps aux | grep mythexternrecorder
root 15820 0.0 0.0 7868 676 pts/0 S+ 22:51 0:00 grep mythexternrecorder

> What does the mythexternrecorder log file have in it?

To be honest I have never really managed to have separate logs in
/var/log/mythtv/ even though I have tried to.

ls -ld /var/log/mythtv
drwxr-sr-x 2 root adm 20480 feb 11 20:36 /var/log/mythtv

ps ax | grep mythbackend | grep -v grep
15605 ? Ssl 0:00 /usr/bin/mythbackend --logpath /var/log/mythtv/ --verbose channel,record

systemctl status mythtv-backend
? mythtv-backend.service - MythTV Backend
Loaded: loaded (/lib/systemd/system/mythtv-backend.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mythtv-backend.service.d
??override.conf
Active: active (running) since Thu 2021-02-11 22:42:27 CET; 1min 23s ago
Docs: https://www.mythtv.org/wiki/Mythbackend
https://www.mythtv.org/wiki/Mythbackend
Main PID: 15605 (mythbackend)
Tasks: 34 (limit: 4915)
Memory: 44.0M
CGroup: /system.slice/mythtv-backend.service
??15605 /usr/bin/mythbackend --logpath /var/log/mythtv/ --verbose channel,record

cat /etc/rsyslog.d/mythtv-backend.conf
$FileOwner mythtv
$FileGroup mythtv
$FileCreateMode 0644

# Specify a log file name format. Ensure one of the following templates is
# uncommented.
# - Use a single log file for all logging from any MythTV application:
#$template mythtvFile,"/var/log/mythtv/mythtv.log"
# - Use a single log file per application:
$template mythtvFile,"/var/log/mythtv/%programname%.log"
# - Use a separate log file per process:
#$template mythtvFile,"/var/log/mythtv/%programname%.%syslogtag:R,ERE,1,ZERO:\[([[:digit:]]{1,})\]--end%.log"

# Send all logging on local6 facility to mythtvFile (filename created according
# to the template specified, above), then discard (so the message is not also
# written to system other log files).
# This should catch any output from MythTV applications, assuming they are
# started with:
# --syslog local6
local6.* ?mythtvFile
& ~

$FileOwner root
$FileGroup adm
$FileCreateMode 0640

Thanks again!

Best regards,
Peter Carlsson
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Thu, Feb 11, 2021 at 3:00 PM Peter Carlsson <maillist.peter@home.se>
wrote:

>
> <trimmed>
>
> ps aux | grep mythexternrecorder
> root 15820 0.0 0.0 7868 676 pts/0 S+ 22:51 0:00 grep
> mythexternrecorder
>
> > What does the mythexternrecorder log file have in it?
>
> To be honest I have never really managed to have separate logs in
> /var/log/mythtv/ even though I have tried to.
>
> ls -ld /var/log/mythtv
> drwxr-sr-x 2 root adm 20480 feb 11 20:36 /var/log/mythtv
>
> ps ax | grep mythbackend | grep -v grep
> 15605 ? Ssl 0:00 /usr/bin/mythbackend --logpath
> /var/log/mythtv/ --verbose channel,record
>
> systemctl status mythtv-backend
> ? mythtv-backend.service - MythTV Backend
> Loaded: loaded (/lib/systemd/system/mythtv-backend.service;
> enabled; vendor preset: enabled)
> Drop-In: /etc/systemd/system/mythtv-backend.service.d
> ??override.conf
> Active: active (running) since Thu 2021-02-11 22:42:27 CET; 1min
> 23s ago
> Docs: https://www.mythtv.org/wiki/Mythbackend
> https://www.mythtv.org/wiki/Mythbackend
> Main PID: 15605 (mythbackend)
> Tasks: 34 (limit: 4915)
> Memory: 44.0M
> CGroup: /system.slice/mythtv-backend.service
> ??15605 /usr/bin/mythbackend --logpath /var/log/mythtv/
> --verbose channel,record
>
> cat /etc/rsyslog.d/mythtv-backend.conf
> $FileOwner mythtv
> $FileGroup mythtv
> $FileCreateMode 0644
>
> # Specify a log file name format. Ensure one of the following
> templates is
> # uncommented.
> # - Use a single log file for all logging from any MythTV application:
> #$template mythtvFile,"/var/log/mythtv/mythtv.log"
> # - Use a single log file per application:
> $template mythtvFile,"/var/log/mythtv/%programname%.log"
> # - Use a separate log file per process:
> #$template
> mythtvFile,"/var/log/mythtv/%programname%.%syslogtag:R,ERE,1,ZERO:\[([[:digit:]]{1,})\]--end%.log"
>
> # Send all logging on local6 facility to mythtvFile (filename created
> according
> # to the template specified, above), then discard (so the message is
> not also
> # written to system other log files).
> # This should catch any output from MythTV applications, assuming they
> are
> # started with:
> # --syslog local6
> local6.* ?mythtvFile
> & ~
>
> $FileOwner root
> $FileGroup adm
> $FileCreateMode 0640
>
> Thanks again!
>
> Best regards,
> Peter Carlsson
>


You don't have a mythtv user and group? I strongly recommend having
mythbackend, etc, run as mythtv:mythtv instead of root. You would need to
change the ownership of /var/log/mythtv accordingly. It is very possible
that is your whole problem. If mythexternrecorder does not have permission
to write its log files to the same directory as mythbackend, it will refuse
to run.
That being said, I don't use syslog for mythbackend logs and have never
tried to use mythexternrecorder that way. I guess it should work, I just
can't be sure.

John
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Thu, Feb 11, 2021 at 04:12:40PM -0700, John P Poet wrote:
> On Thu, Feb 11, 2021 at 3:00 PM Peter Carlsson <maillist.peter@home.se>
> wrote:
>
> >
> > <trimmed>
> >
> > ps aux | grep mythexternrecorder
> > root 15820 0.0 0.0 7868 676 pts/0 S+ 22:51 0:00 grep
> > mythexternrecorder
> >
> > > What does the mythexternrecorder log file have in it?
> >
> > To be honest I have never really managed to have separate logs in
> > /var/log/mythtv/ even though I have tried to.
> >
> > ls -ld /var/log/mythtv
> > drwxr-sr-x 2 root adm 20480 feb 11 20:36 /var/log/mythtv
> >
> > ps ax | grep mythbackend | grep -v grep
> > 15605 ? Ssl 0:00 /usr/bin/mythbackend --logpath
> > /var/log/mythtv/ --verbose channel,record
> >
> > systemctl status mythtv-backend
> > ? mythtv-backend.service - MythTV Backend
> > Loaded: loaded (/lib/systemd/system/mythtv-backend.service;
> > enabled; vendor preset: enabled)
> > Drop-In: /etc/systemd/system/mythtv-backend.service.d
> > ??override.conf
> > Active: active (running) since Thu 2021-02-11 22:42:27 CET; 1min
> > 23s ago
> > Docs: https://www.mythtv.org/wiki/Mythbackend
> > https://www.mythtv.org/wiki/Mythbackend
> > Main PID: 15605 (mythbackend)
> > Tasks: 34 (limit: 4915)
> > Memory: 44.0M
> > CGroup: /system.slice/mythtv-backend.service
> > ??15605 /usr/bin/mythbackend --logpath /var/log/mythtv/
> > --verbose channel,record
> >
> > cat /etc/rsyslog.d/mythtv-backend.conf
> > $FileOwner mythtv
> > $FileGroup mythtv
> > $FileCreateMode 0644
> >
> > # Specify a log file name format. Ensure one of the following
> > templates is
> > # uncommented.
> > # - Use a single log file for all logging from any MythTV application:
> > #$template mythtvFile,"/var/log/mythtv/mythtv.log"
> > # - Use a single log file per application:
> > $template mythtvFile,"/var/log/mythtv/%programname%.log"
> > # - Use a separate log file per process:
> > #$template
> > mythtvFile,"/var/log/mythtv/%programname%.%syslogtag:R,ERE,1,ZERO:\[([[:digit:]]{1,})\]--end%.log"
> >
> > # Send all logging on local6 facility to mythtvFile (filename created
> > according
> > # to the template specified, above), then discard (so the message is
> > not also
> > # written to system other log files).
> > # This should catch any output from MythTV applications, assuming they
> > are
> > # started with:
> > # --syslog local6
> > local6.* ?mythtvFile
> > & ~
> >
> > $FileOwner root
> > $FileGroup adm
> > $FileCreateMode 0640
> >
> > Thanks again!
> >
> > Best regards,
> > Peter Carlsson
> >
>
>
> You don't have a mythtv user and group? I strongly recommend having
> mythbackend, etc, run as mythtv:mythtv instead of root. You would need to
> change the ownership of /var/log/mythtv accordingly. It is very possible
> that is your whole problem. If mythexternrecorder does not have permission
> to write its log files to the same directory as mythbackend, it will refuse
> to run.
> That being said, I don't use syslog for mythbackend logs and have never
> tried to use mythexternrecorder that way. I guess it should work, I just
> can't be sure.

I was under the impression that I always run the backend as user mythtv
and I think I still does. But you were right about the permissions of
/var/log/mythtv which I have now fixed. So all logs end up there. Thanks!

But fixing that did not fix the problem with mythexternrecorder.

Below you can see part of the log files. I can provide the full log
files but was not sure I could send attachments to the mailing list.

Will these excerpts give any clues?

Thanks again for all your help!

Best regards,
Peter Carlsson

cat /tmp/mythexternrecorder.20210212104722.32675.log
2021-02-12 11:47:22.145760 C [32675/32675] thread_unknown mythcommandlineparser.cpp:2611 (ConfigureLogging) - mythexternrecorder version: [v31.0] www.mythtv.org
2021-02-12 11:47:22.145793 C [32675/32675] thread_unknown mythcommandlineparser.cpp:2613 (ConfigureLogging) - Qt version: compile: 5.11.3, runtime: 5.11.3
2021-02-12 11:47:22.145847 I [32675/32675] thread_unknown mythcommandlineparser.cpp:2615 (ConfigureLogging) - Debian GNU/Linux 10 (buster) (i386)
2021-02-12 11:47:22.145851 N [32675/32675] thread_unknown mythcommandlineparser.cpp:2617 (ConfigureLogging) - Enabled verbose msgs: general channel record
2021-02-12 11:47:22.145947 N [32675/32675] thread_unknown logging.cpp:725 (logStart) - Setting Log Level to LOG_INFO
2021-02-12 11:47:22.156735 I [32675/32678] Logger logging.cpp:280 (run) - Added logging to the console
2021-02-12 11:47:22.157080 I [32675/32679] thread_unknown MythExternControl.cpp:565 (Run) - : Buffer: Ready for data.
2021-02-12 11:47:22.157268 I [32675/32680] thread_unknown MythExternControl.cpp:450 (Run) - : Command parser ready.
2021-02-12 11:47:22.157356 I [32675/32677] LogForward loggingserver.cpp:129 (FileLogger) - Added logging to /var/log/mythtv/mythexternrecorder.20210212104722.32675.log
2021-02-12 11:47:22.157410 I [32675/32680] thread_unknown MythExternControl.cpp:215 (SendStatus) - : Processing 'APIVersion?' --> 'OK:2'
2021-02-12 11:47:22.157636 I [32675/32680] thread_unknown MythExternControl.cpp:240 (SendStatus) - : Processing '1:APIVersion:2' --> '1:OK:2'
2021-02-12 11:47:22.157763 I [32675/32680] thread_unknown MythExternControl.cpp:240 (SendStatus) - : Processing '2:Version?' --> '2:OK:0.6'
2021-02-12 11:47:22.157880 I [32675/32680] thread_unknown MythExternControl.cpp:240 (SendStatus) - : Processing '3:Description?' --> '3:WARN:Not set'
2021-02-12 11:47:22.163536 I [32675/32675] thread_unknown MythExternRecApp.cpp:50 (MythExternRecApp) - Channels in '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf', Tuner: '', Scanner: ''
2021-02-12 11:47:26.167121 I [32675/32675] thread_unknown MythExternControl.cpp:240 (SendStatus) - : Processing 'HasTuner' --> '5:OK:Yes'
2021-02-12 11:47:26.177351 I [32675/32675] thread_unknown MythExternControl.cpp:240 (SendStatus) - : Processing 'HasPictureAttributes' --> '6:OK:No'
2021-02-12 11:47:26.177552 I [32675/32680] thread_unknown MythExternControl.cpp:240 (SendStatus) - : Processing '7:FlowControl?' --> '7:OK:XON/XOFF'
2021-02-12 11:47:26.187588 I [32675/32675] thread_unknown MythExternControl.cpp:240 (SendStatus) - : Processing 'BlockSize' --> '8:OK'
2021-02-12 11:52:27.189668 N [32675/32679] thread_unknown MythExternControl.cpp:591 (Run) - : Not streaming.

cat /tmp/mythbackend.20210212104435.32334.log
2021-02-12 11:47:21.885916 I [32334/32405] TVRecEvent tv_rec.cpp:1057 (HandleStateChange) - TVRec[21]: Changing from None to WatchingLiveTV
2021-02-12 11:47:21.885970 I [32334/32405] TVRecEvent tv_rec.cpp:4434 (ClearFlags) - TVRec[21]: ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop, @ tv_rec.cpp:1291
2021-02-12 11:47:21.885996 I [32334/32405] TVRecEvent tv_rec.cpp:3502 (HandleTuning) - TVRec[21]: HandleTuning Request: Program(NULL) channel() input() flags(LiveTV,)
2021-02-12 11:47:21.886014 I [32334/32405] TVRecEvent cardutil.cpp:2055 (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() input 21
2021-02-12 11:47:21.887648 I [32334/32405] TVRecEvent cardutil.cpp:2087 (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 22
2021-02-12 11:47:21.887683 I [32334/32405] TVRecEvent cardutil.cpp:2087 (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 23
2021-02-12 11:47:21.887694 I [32334/32405] TVRecEvent cardutil.cpp:2087 (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 24
2021-02-12 11:47:21.887741 I [32334/32405] TVRecEvent recorders/channelbase.cpp:259 (IsInputAvailable) - ChannelBase[21]: Input is free on 0/0
2021-02-12 11:47:21.889052 I [32334/32405] TVRecEvent tv_rec.cpp:3571 (TuningShutdowns) - TVRec[21]: TuningShutdowns(Program(NULL) channel(1) input() flags(LiveTV,))
2021-02-12 11:47:21.889071 I [32334/32405] TVRecEvent tv_rec.cpp:4434 (ClearFlags) - TVRec[21]: ClearFlags(PENDINGACTIONS,) -> RunMainLoop, @ tv_rec.cpp:3640
2021-02-12 11:47:21.889083 I [32334/32405] TVRecEvent tv_rec.cpp:3524 (HandleTuning) - TVRec[21]: No recorder yet, calling TuningFrequency
2021-02-12 11:47:21.889092 I [32334/32405] TVRecEvent tv_rec.cpp:3662 (TuningFrequency) - TVRec[21]: TuningFrequency
2021-02-12 11:47:21.889728 I [32334/32405] TVRecEvent recorders/ExternalChannel.cpp:21 (Open) - ExternChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Open()
2021-02-12 11:47:21.891806 I [32334/32405] TVRecEvent recorders/channelbase.cpp:618 (InitializeInput) - ChannelBase[21]: Input #21: 'MPEG2TS' schan(1) sourceid(4)
2021-02-12 11:47:21.891880 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:550 (ExternalStreamHandler) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): args "--conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --verbose general,channel,record --logpath /var/log/mythtv --loglevel info --quiet --inputid 21"
2021-02-12 11:47:21.891942 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:913 (OpenApp) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Spawn '/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf'
2021-02-12 11:47:21.891950 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:231 (Run) - ExternIO::Run()
2021-02-12 11:47:21.910956 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:321 (Fork) - ExternIO::Fork 'mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --verbose general,channel,record --logpath /var/log/mythtv --loglevel info --quiet --inputid 21'
2021-02-12 11:47:21.914682 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:379 (Fork) - Spawned
2021-02-12 11:47:22.157517 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1319 (ProcessVer1) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessCommand('APIVersion?') = 'OK:2' took 232ms
2021-02-12 11:47:22.157678 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessV2('1:APIVersion:2') = 'OK:2' took 0ms
2021-02-12 11:47:22.157785 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessV2('2:Version?') = 'OK:0.6' took 0ms
2021-02-12 11:47:22.157917 W [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessV2('3:Description?') = 'WARN:Not set' took 0ms <-- NOTE
2021-02-12 11:47:26.161611 E [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1423 (ProcessVer2) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessVer2: Giving up waiting for response for command '4:HasTuner?'
2021-02-12 11:47:26.167204 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessV2('5:HasTuner?') = 'OK:Yes' took 5ms
2021-02-12 11:47:26.177405 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessV2('6:HasPictureAttributes?') = 'OK:No' took 10ms
2021-02-12 11:47:26.177584 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessV2('7:FlowControl?') = 'OK:XON/XOFF' took 0ms
2021-02-12 11:47:26.177599 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:970 (OpenApp) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): App opened successfully
2021-02-12 11:47:26.177615 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:978 (OpenApp) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Capabilities: tuner(yes) Picture attributes(no) Flow control(XON/XOFF)
2021-02-12 11:47:26.187687 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) - ExternSH[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): ProcessV2('8:BlockSize:1540096') = 'OK' took 10ms
2021-02-12 11:47:26.187718 I [32334/32405] TVRecEvent recorders/ExternalStreamHandler.cpp:470 (Get) - ExternSH[21]: Creating new stream handler 21 for /usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
2021-02-12 11:47:26.187734 I [32334/32405] TVRecEvent recorders/ExternalChannel.cpp:52 (Open) - ExternChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Opened
2021-02-12 11:47:26.187748 I [32334/32405] TVRecEvent recorders/dtvchannel.cpp:159 (SetChannelByString) - DTVChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): SetChannelByString(1):
2021-02-12 11:47:26.187759 I [32334/32405] TVRecEvent cardutil.cpp:2055 (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() input 21
2021-02-12 11:47:26.188661 I [32334/32405] TVRecEvent cardutil.cpp:2087 (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 22
2021-02-12 11:47:26.188682 I [32334/32405] TVRecEvent cardutil.cpp:2087 (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 23
2021-02-12 11:47:26.188698 I [32334/32405] TVRecEvent cardutil.cpp:2087 (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 24
2021-02-12 11:47:26.188765 I [32334/32405] TVRecEvent recorders/channelbase.cpp:259 (IsInputAvailable) - ChannelBase[21]: Input is free on 0/0
2021-02-12 11:47:26.190694 E [32334/32405] TVRecEvent dtvmultiplex.cpp:412 (ParseTuningParams) - DTVMux: ParseTuningParams -- Unknown tuner type = 0xffffffff80000000
2021-02-12 11:47:26.190750 E [32334/32405] TVRecEvent recorders/dtvchannel.cpp:290 (SetChannelByString) - DTVChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): SetChannelByString(1): Failed to initialize multiplex options
2021-02-12 11:47:26.190761 I [32334/32405] TVRecEvent recorders/dtvchannel.cpp:320 (SetChannelByString) - DTVChan[21](/usr/bin/mythexternrecorder --conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): SetChannelByString(1): failure
2021-02-12 11:47:26.190774 E [32334/32405] TVRecEvent tv_rec.cpp:3737 (TuningFrequency) - TVRec[21]: Failed to set channel to 1. Reverting to kState_None
2021-02-12 11:47:26.190803 I [32334/32405] TVRecEvent tv_rec.cpp:1057 (HandleStateChange) - TVRec[21]: Changing from WatchingLiveTV to None

_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Fri, Feb 12, 2021 at 4:35 AM Peter Carlsson <maillist.peter@home.se>
wrote:

> On Thu, Feb 11, 2021 at 04:12:40PM -0700, John P Poet wrote:
> > On Thu, Feb 11, 2021 at 3:00 PM Peter Carlsson <maillist.peter@home.se>
> > wrote:
> >
> > >
> > > <trimmed>
> > >
> > > ps aux | grep mythexternrecorder
> > > root 15820 0.0 0.0 7868 676 pts/0 S+ 22:51 0:00
> grep
> > > mythexternrecorder
> > >
> > > > What does the mythexternrecorder log file have in it?
> > >
> > > To be honest I have never really managed to have separate logs in
> > > /var/log/mythtv/ even though I have tried to.
> > >
> > > ls -ld /var/log/mythtv
> > > drwxr-sr-x 2 root adm 20480 feb 11 20:36 /var/log/mythtv
> > >
> > > ps ax | grep mythbackend | grep -v grep
> > > 15605 ? Ssl 0:00 /usr/bin/mythbackend --logpath
> > > /var/log/mythtv/ --verbose channel,record
> > >
> > > systemctl status mythtv-backend
> > > ? mythtv-backend.service - MythTV Backend
> > > Loaded: loaded (/lib/systemd/system/mythtv-backend.service;
> > > enabled; vendor preset: enabled)
> > > Drop-In: /etc/systemd/system/mythtv-backend.service.d
> > > ??override.conf
> > > Active: active (running) since Thu 2021-02-11 22:42:27 CET;
> 1min
> > > 23s ago
> > > Docs: https://www.mythtv.org/wiki/Mythbackend
> > > https://www.mythtv.org/wiki/Mythbackend
> > > Main PID: 15605 (mythbackend)
> > > Tasks: 34 (limit: 4915)
> > > Memory: 44.0M
> > > CGroup: /system.slice/mythtv-backend.service
> > > ??15605 /usr/bin/mythbackend --logpath
> /var/log/mythtv/
> > > --verbose channel,record
> > >
> > > cat /etc/rsyslog.d/mythtv-backend.conf
> > > $FileOwner mythtv
> > > $FileGroup mythtv
> > > $FileCreateMode 0644
> > >
> > > # Specify a log file name format. Ensure one of the following
> > > templates is
> > > # uncommented.
> > > # - Use a single log file for all logging from any MythTV
> application:
> > > #$template mythtvFile,"/var/log/mythtv/mythtv.log"
> > > # - Use a single log file per application:
> > > $template mythtvFile,"/var/log/mythtv/%programname%.log"
> > > # - Use a separate log file per process:
> > > #$template
> > >
> mythtvFile,"/var/log/mythtv/%programname%.%syslogtag:R,ERE,1,ZERO:\[([[:digit:]]{1,})\]--end%.log"
> > >
> > > # Send all logging on local6 facility to mythtvFile (filename
> created
> > > according
> > > # to the template specified, above), then discard (so the message
> is
> > > not also
> > > # written to system other log files).
> > > # This should catch any output from MythTV applications, assuming
> they
> > > are
> > > # started with:
> > > # --syslog local6
> > > local6.* ?mythtvFile
> > > & ~
> > >
> > > $FileOwner root
> > > $FileGroup adm
> > > $FileCreateMode 0640
> > >
> > > Thanks again!
> > >
> > > Best regards,
> > > Peter Carlsson
> > >
> >
> >
> > You don't have a mythtv user and group? I strongly recommend having
> > mythbackend, etc, run as mythtv:mythtv instead of root. You would need to
> > change the ownership of /var/log/mythtv accordingly. It is very possible
> > that is your whole problem. If mythexternrecorder does not have
> permission
> > to write its log files to the same directory as mythbackend, it will
> refuse
> > to run.
> > That being said, I don't use syslog for mythbackend logs and have never
> > tried to use mythexternrecorder that way. I guess it should work, I just
> > can't be sure.
>
> I was under the impression that I always run the backend as user mythtv
> and I think I still does. But you were right about the permissions of
> /var/log/mythtv which I have now fixed. So all logs end up there. Thanks!
>
> But fixing that did not fix the problem with mythexternrecorder.
>
> Below you can see part of the log files. I can provide the full log
> files but was not sure I could send attachments to the mailing list.
>
> Will these excerpts give any clues?
>
> Thanks again for all your help!
>
> Best regards,
> Peter Carlsson
>
> cat /tmp/mythexternrecorder.20210212104722.32675.log
> 2021-02-12 11:47:22.145760 C [32675/32675] thread_unknown
> mythcommandlineparser.cpp:2611 (ConfigureLogging) - mythexternrecorder
> version: [v31.0] www.mythtv.org
> 2021-02-12 11:47:22.145793 C [32675/32675] thread_unknown
> mythcommandlineparser.cpp:2613 (ConfigureLogging) - Qt version: compile:
> 5.11.3, runtime: 5.11.3
> 2021-02-12 11:47:22.145847 I [32675/32675] thread_unknown
> mythcommandlineparser.cpp:2615 (ConfigureLogging) - Debian GNU/Linux 10
> (buster) (i386)
> 2021-02-12 11:47:22.145851 N [32675/32675] thread_unknown
> mythcommandlineparser.cpp:2617 (ConfigureLogging) - Enabled verbose msgs:
> general channel record
> 2021-02-12 11:47:22.145947 N [32675/32675] thread_unknown
> logging.cpp:725 (logStart) - Setting Log Level to LOG_INFO
> 2021-02-12 11:47:22.156735 I [32675/32678] Logger logging.cpp:280 (run)
> - Added logging to the console
> 2021-02-12 11:47:22.157080 I [32675/32679] thread_unknown
> MythExternControl.cpp:565 (Run) - : Buffer: Ready for data.
> 2021-02-12 11:47:22.157268 I [32675/32680] thread_unknown
> MythExternControl.cpp:450 (Run) - : Command parser ready.
> 2021-02-12 11:47:22.157356 I [32675/32677] LogForward
> loggingserver.cpp:129 (FileLogger) - Added logging to
> /var/log/mythtv/mythexternrecorder.20210212104722.32675.log
> 2021-02-12 11:47:22.157410 I [32675/32680] thread_unknown
> MythExternControl.cpp:215 (SendStatus) - : Processing 'APIVersion?' -->
> 'OK:2'
> 2021-02-12 11:47:22.157636 I [32675/32680] thread_unknown
> MythExternControl.cpp:240 (SendStatus) - : Processing '1:APIVersion:2' -->
> '1:OK:2'
> 2021-02-12 11:47:22.157763 I [32675/32680] thread_unknown
> MythExternControl.cpp:240 (SendStatus) - : Processing '2:Version?' -->
> '2:OK:0.6'
> 2021-02-12 11:47:22.157880 I [32675/32680] thread_unknown
> MythExternControl.cpp:240 (SendStatus) - : Processing '3:Description?' -->
> '3:WARN:Not set'
> 2021-02-12 11:47:22.163536 I [32675/32675] thread_unknown
> MythExternRecApp.cpp:50 (MythExternRecApp) - Channels in
> '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf',
> Tuner: '', Scanner: ''
> 2021-02-12 11:47:26.167121 I [32675/32675] thread_unknown
> MythExternControl.cpp:240 (SendStatus) - : Processing 'HasTuner' -->
> '5:OK:Yes'
> 2021-02-12 11:47:26.177351 I [32675/32675] thread_unknown
> MythExternControl.cpp:240 (SendStatus) - : Processing
> 'HasPictureAttributes' --> '6:OK:No'
> 2021-02-12 11:47:26.177552 I [32675/32680] thread_unknown
> MythExternControl.cpp:240 (SendStatus) - : Processing '7:FlowControl?' -->
> '7:OK:XON/XOFF'
> 2021-02-12 11:47:26.187588 I [32675/32675] thread_unknown
> MythExternControl.cpp:240 (SendStatus) - : Processing 'BlockSize' --> '8:OK'
> 2021-02-12 11:52:27.189668 N [32675/32679] thread_unknown
> MythExternControl.cpp:591 (Run) - : Not streaming.
>
> cat /tmp/mythbackend.20210212104435.32334.log
> 2021-02-12 11:47:21.885916 I [32334/32405] TVRecEvent tv_rec.cpp:1057
> (HandleStateChange) - TVRec[21]: Changing from None to WatchingLiveTV
> 2021-02-12 11:47:21.885970 I [32334/32405] TVRecEvent tv_rec.cpp:4434
> (ClearFlags) - TVRec[21]: ClearFlags(FrontendReady,CancelNextRecording,) ->
> RunMainLoop, @ tv_rec.cpp:1291
> 2021-02-12 11:47:21.885996 I [32334/32405] TVRecEvent tv_rec.cpp:3502
> (HandleTuning) - TVRec[21]: HandleTuning Request: Program(NULL) channel()
> input() flags(LiveTV,)
> 2021-02-12 11:47:21.886014 I [32334/32405] TVRecEvent cardutil.cpp:2055
> (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() input 21
> 2021-02-12 11:47:21.887648 I [32334/32405] TVRecEvent cardutil.cpp:2087
> (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 22
> 2021-02-12 11:47:21.887683 I [32334/32405] TVRecEvent cardutil.cpp:2087
> (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 23
> 2021-02-12 11:47:21.887694 I [32334/32405] TVRecEvent cardutil.cpp:2087
> (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 24
> 2021-02-12 11:47:21.887741 I [32334/32405] TVRecEvent
> recorders/channelbase.cpp:259 (IsInputAvailable) - ChannelBase[21]: Input
> is free on 0/0
> 2021-02-12 11:47:21.889052 I [32334/32405] TVRecEvent tv_rec.cpp:3571
> (TuningShutdowns) - TVRec[21]: TuningShutdowns(Program(NULL) channel(1)
> input() flags(LiveTV,))
> 2021-02-12 11:47:21.889071 I [32334/32405] TVRecEvent tv_rec.cpp:4434
> (ClearFlags) - TVRec[21]: ClearFlags(PENDINGACTIONS,) -> RunMainLoop, @
> tv_rec.cpp:3640
> 2021-02-12 11:47:21.889083 I [32334/32405] TVRecEvent tv_rec.cpp:3524
> (HandleTuning) - TVRec[21]: No recorder yet, calling TuningFrequency
> 2021-02-12 11:47:21.889092 I [32334/32405] TVRecEvent tv_rec.cpp:3662
> (TuningFrequency) - TVRec[21]: TuningFrequency
> 2021-02-12 11:47:21.889728 I [32334/32405] TVRecEvent
> recorders/ExternalChannel.cpp:21 (Open) -
> ExternChan[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Open()
> 2021-02-12 11:47:21.891806 I [32334/32405] TVRecEvent
> recorders/channelbase.cpp:618 (InitializeInput) - ChannelBase[21]: Input
> #21: 'MPEG2TS' schan(1) sourceid(4)
> 2021-02-12 11:47:21.891880 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:550 (ExternalStreamHandler) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): args
> "--conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> --verbose general,channel,record --logpath /var/log/mythtv --loglevel info
> --quiet --inputid 21"
> 2021-02-12 11:47:21.891942 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:913 (OpenApp) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Spawn
> '/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf'
> 2021-02-12 11:47:21.891950 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:231 (Run) - ExternIO::Run()
> 2021-02-12 11:47:21.910956 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:321 (Fork) - ExternIO::Fork
> 'mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --verbose
> general,channel,record --logpath /var/log/mythtv --loglevel info --quiet
> --inputid 21'
> 2021-02-12 11:47:21.914682 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:379 (Fork) - Spawned
> 2021-02-12 11:47:22.157517 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1319 (ProcessVer1) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessCommand('APIVersion?') = 'OK:2' took 232ms
> 2021-02-12 11:47:22.157678 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessV2('1:APIVersion:2') = 'OK:2' took 0ms
> 2021-02-12 11:47:22.157785 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessV2('2:Version?') = 'OK:0.6' took 0ms
> 2021-02-12 11:47:22.157917 W [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessV2('3:Description?') = 'WARN:Not set' took 0ms <-- NOTE
> 2021-02-12 11:47:26.161611 E [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1423 (ProcessVer2) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessVer2: Giving up waiting for response for command '4:HasTuner?'
> 2021-02-12 11:47:26.167204 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessV2('5:HasTuner?') = 'OK:Yes' took 5ms
> 2021-02-12 11:47:26.177405 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessV2('6:HasPictureAttributes?') = 'OK:No' took 10ms
> 2021-02-12 11:47:26.177584 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessV2('7:FlowControl?') = 'OK:XON/XOFF' took 0ms
> 2021-02-12 11:47:26.177599 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:970 (OpenApp) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): App opened
> successfully
> 2021-02-12 11:47:26.177615 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:978 (OpenApp) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> Capabilities: tuner(yes) Picture attributes(no) Flow control(XON/XOFF)
> 2021-02-12 11:47:26.187687 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> ExternSH[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> ProcessV2('8:BlockSize:1540096') = 'OK' took 10ms
> 2021-02-12 11:47:26.187718 I [32334/32405] TVRecEvent
> recorders/ExternalStreamHandler.cpp:470 (Get) - ExternSH[21]: Creating new
> stream handler 21 for /usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> 2021-02-12 11:47:26.187734 I [32334/32405] TVRecEvent
> recorders/ExternalChannel.cpp:52 (Open) -
> ExternChan[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Opened
> 2021-02-12 11:47:26.187748 I [32334/32405] TVRecEvent
> recorders/dtvchannel.cpp:159 (SetChannelByString) -
> DTVChan[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> SetChannelByString(1):
> 2021-02-12 11:47:26.187759 I [32334/32405] TVRecEvent cardutil.cpp:2055
> (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() input 21
> 2021-02-12 11:47:26.188661 I [32334/32405] TVRecEvent cardutil.cpp:2087
> (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 22
> 2021-02-12 11:47:26.188682 I [32334/32405] TVRecEvent cardutil.cpp:2087
> (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 23
> 2021-02-12 11:47:26.188698 I [32334/32405] TVRecEvent cardutil.cpp:2087
> (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 24
> 2021-02-12 11:47:26.188765 I [32334/32405] TVRecEvent
> recorders/channelbase.cpp:259 (IsInputAvailable) - ChannelBase[21]: Input
> is free on 0/0
> 2021-02-12 11:47:26.190694 E [32334/32405] TVRecEvent
> dtvmultiplex.cpp:412 (ParseTuningParams) - DTVMux: ParseTuningParams --
> Unknown tuner type = 0xffffffff80000000
> 2021-02-12 11:47:26.190750 E [32334/32405] TVRecEvent
> recorders/dtvchannel.cpp:290 (SetChannelByString) -
> DTVChan[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> SetChannelByString(1): Failed to initialize multiplex options
> 2021-02-12 11:47:26.190761 I [32334/32405] TVRecEvent
> recorders/dtvchannel.cpp:320 (SetChannelByString) -
> DTVChan[21](/usr/bin/mythexternrecorder --conf
> /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> SetChannelByString(1): failure
> 2021-02-12 11:47:26.190774 E [32334/32405] TVRecEvent tv_rec.cpp:3737
> (TuningFrequency) - TVRec[21]: Failed to set channel to 1. Reverting to
> kState_None
> 2021-02-12 11:47:26.190803 I [32334/32405] TVRecEvent tv_rec.cpp:1057
> (HandleStateChange) - TVRec[21]: Changing from WatchingLiveTV to None
>

Are you running v31 or v31-latest (v31-fixes)? If you are not running the
latest version of v31 you may be hitting a bug preventing it from handling
the situation where there are channels but no tuner. I had forgotten about
that because it was fixed so long ago.

John
Re: Problems with ExternalRecorder and streamlink [ In reply to ]
On Fri, Feb 12, 2021 at 10:20:04AM -0700, John P Poet wrote:
> >
> > Below you can see part of the log files. I can provide the full log
> > files but was not sure I could send attachments to the mailing list.
> >
> > Will these excerpts give any clues?
> >
> > Thanks again for all your help!
> >
> > Best regards,
> > Peter Carlsson
> >
> > cat /tmp/mythexternrecorder.20210212104722.32675.log
> > 2021-02-12 11:47:22.145760 C [32675/32675] thread_unknown
> > mythcommandlineparser.cpp:2611 (ConfigureLogging) - mythexternrecorder
> > version: [v31.0] www.mythtv.org
> > 2021-02-12 11:47:22.145793 C [32675/32675] thread_unknown
> > mythcommandlineparser.cpp:2613 (ConfigureLogging) - Qt version: compile:
> > 5.11.3, runtime: 5.11.3
> > 2021-02-12 11:47:22.145847 I [32675/32675] thread_unknown
> > mythcommandlineparser.cpp:2615 (ConfigureLogging) - Debian GNU/Linux 10
> > (buster) (i386)
> > 2021-02-12 11:47:22.145851 N [32675/32675] thread_unknown
> > mythcommandlineparser.cpp:2617 (ConfigureLogging) - Enabled verbose msgs:
> > general channel record
> > 2021-02-12 11:47:22.145947 N [32675/32675] thread_unknown
> > logging.cpp:725 (logStart) - Setting Log Level to LOG_INFO
> > 2021-02-12 11:47:22.156735 I [32675/32678] Logger logging.cpp:280 (run)
> > - Added logging to the console
> > 2021-02-12 11:47:22.157080 I [32675/32679] thread_unknown
> > MythExternControl.cpp:565 (Run) - : Buffer: Ready for data.
> > 2021-02-12 11:47:22.157268 I [32675/32680] thread_unknown
> > MythExternControl.cpp:450 (Run) - : Command parser ready.
> > 2021-02-12 11:47:22.157356 I [32675/32677] LogForward
> > loggingserver.cpp:129 (FileLogger) - Added logging to
> > /var/log/mythtv/mythexternrecorder.20210212104722.32675.log
> > 2021-02-12 11:47:22.157410 I [32675/32680] thread_unknown
> > MythExternControl.cpp:215 (SendStatus) - : Processing 'APIVersion?' -->
> > 'OK:2'
> > 2021-02-12 11:47:22.157636 I [32675/32680] thread_unknown
> > MythExternControl.cpp:240 (SendStatus) - : Processing '1:APIVersion:2' -->
> > '1:OK:2'
> > 2021-02-12 11:47:22.157763 I [32675/32680] thread_unknown
> > MythExternControl.cpp:240 (SendStatus) - : Processing '2:Version?' -->
> > '2:OK:0.6'
> > 2021-02-12 11:47:22.157880 I [32675/32680] thread_unknown
> > MythExternControl.cpp:240 (SendStatus) - : Processing '3:Description?' -->
> > '3:WARN:Not set'
> > 2021-02-12 11:47:22.163536 I [32675/32675] thread_unknown
> > MythExternRecApp.cpp:50 (MythExternRecApp) - Channels in
> > '/home/peter/delat/script/mythtv-svtplay-external-recorder-channels.conf',
> > Tuner: '', Scanner: ''
> > 2021-02-12 11:47:26.167121 I [32675/32675] thread_unknown
> > MythExternControl.cpp:240 (SendStatus) - : Processing 'HasTuner' -->
> > '5:OK:Yes'
> > 2021-02-12 11:47:26.177351 I [32675/32675] thread_unknown
> > MythExternControl.cpp:240 (SendStatus) - : Processing
> > 'HasPictureAttributes' --> '6:OK:No'
> > 2021-02-12 11:47:26.177552 I [32675/32680] thread_unknown
> > MythExternControl.cpp:240 (SendStatus) - : Processing '7:FlowControl?' -->
> > '7:OK:XON/XOFF'
> > 2021-02-12 11:47:26.187588 I [32675/32675] thread_unknown
> > MythExternControl.cpp:240 (SendStatus) - : Processing 'BlockSize' --> '8:OK'
> > 2021-02-12 11:52:27.189668 N [32675/32679] thread_unknown
> > MythExternControl.cpp:591 (Run) - : Not streaming.
> >
> > cat /tmp/mythbackend.20210212104435.32334.log
> > 2021-02-12 11:47:21.885916 I [32334/32405] TVRecEvent tv_rec.cpp:1057
> > (HandleStateChange) - TVRec[21]: Changing from None to WatchingLiveTV
> > 2021-02-12 11:47:21.885970 I [32334/32405] TVRecEvent tv_rec.cpp:4434
> > (ClearFlags) - TVRec[21]: ClearFlags(FrontendReady,CancelNextRecording,) ->
> > RunMainLoop, @ tv_rec.cpp:1291
> > 2021-02-12 11:47:21.885996 I [32334/32405] TVRecEvent tv_rec.cpp:3502
> > (HandleTuning) - TVRec[21]: HandleTuning Request: Program(NULL) channel()
> > input() flags(LiveTV,)
> > 2021-02-12 11:47:21.886014 I [32334/32405] TVRecEvent cardutil.cpp:2055
> > (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() input 21
> > 2021-02-12 11:47:21.887648 I [32334/32405] TVRecEvent cardutil.cpp:2087
> > (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 22
> > 2021-02-12 11:47:21.887683 I [32334/32405] TVRecEvent cardutil.cpp:2087
> > (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 23
> > 2021-02-12 11:47:21.887694 I [32334/32405] TVRecEvent cardutil.cpp:2087
> > (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 24
> > 2021-02-12 11:47:21.887741 I [32334/32405] TVRecEvent
> > recorders/channelbase.cpp:259 (IsInputAvailable) - ChannelBase[21]: Input
> > is free on 0/0
> > 2021-02-12 11:47:21.889052 I [32334/32405] TVRecEvent tv_rec.cpp:3571
> > (TuningShutdowns) - TVRec[21]: TuningShutdowns(Program(NULL) channel(1)
> > input() flags(LiveTV,))
> > 2021-02-12 11:47:21.889071 I [32334/32405] TVRecEvent tv_rec.cpp:4434
> > (ClearFlags) - TVRec[21]: ClearFlags(PENDINGACTIONS,) -> RunMainLoop, @
> > tv_rec.cpp:3640
> > 2021-02-12 11:47:21.889083 I [32334/32405] TVRecEvent tv_rec.cpp:3524
> > (HandleTuning) - TVRec[21]: No recorder yet, calling TuningFrequency
> > 2021-02-12 11:47:21.889092 I [32334/32405] TVRecEvent tv_rec.cpp:3662
> > (TuningFrequency) - TVRec[21]: TuningFrequency
> > 2021-02-12 11:47:21.889728 I [32334/32405] TVRecEvent
> > recorders/ExternalChannel.cpp:21 (Open) -
> > ExternChan[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Open()
> > 2021-02-12 11:47:21.891806 I [32334/32405] TVRecEvent
> > recorders/channelbase.cpp:618 (InitializeInput) - ChannelBase[21]: Input
> > #21: 'MPEG2TS' schan(1) sourceid(4)
> > 2021-02-12 11:47:21.891880 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:550 (ExternalStreamHandler) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): args
> > "--conf /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > --verbose general,channel,record --logpath /var/log/mythtv --loglevel info
> > --quiet --inputid 21"
> > 2021-02-12 11:47:21.891942 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:913 (OpenApp) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Spawn
> > '/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf'
> > 2021-02-12 11:47:21.891950 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:231 (Run) - ExternIO::Run()
> > 2021-02-12 11:47:21.910956 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:321 (Fork) - ExternIO::Fork
> > 'mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf --verbose
> > general,channel,record --logpath /var/log/mythtv --loglevel info --quiet
> > --inputid 21'
> > 2021-02-12 11:47:21.914682 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:379 (Fork) - Spawned
> > 2021-02-12 11:47:22.157517 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1319 (ProcessVer1) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessCommand('APIVersion?') = 'OK:2' took 232ms
> > 2021-02-12 11:47:22.157678 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessV2('1:APIVersion:2') = 'OK:2' took 0ms
> > 2021-02-12 11:47:22.157785 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessV2('2:Version?') = 'OK:0.6' took 0ms
> > 2021-02-12 11:47:22.157917 W [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessV2('3:Description?') = 'WARN:Not set' took 0ms <-- NOTE
> > 2021-02-12 11:47:26.161611 E [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1423 (ProcessVer2) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessVer2: Giving up waiting for response for command '4:HasTuner?'
> > 2021-02-12 11:47:26.167204 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessV2('5:HasTuner?') = 'OK:Yes' took 5ms
> > 2021-02-12 11:47:26.177405 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessV2('6:HasPictureAttributes?') = 'OK:No' took 10ms
> > 2021-02-12 11:47:26.177584 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessV2('7:FlowControl?') = 'OK:XON/XOFF' took 0ms
> > 2021-02-12 11:47:26.177599 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:970 (OpenApp) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): App opened
> > successfully
> > 2021-02-12 11:47:26.177615 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:978 (OpenApp) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > Capabilities: tuner(yes) Picture attributes(no) Flow control(XON/XOFF)
> > 2021-02-12 11:47:26.187687 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:1460 (ProcessVer2) -
> > ExternSH[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > ProcessV2('8:BlockSize:1540096') = 'OK' took 10ms
> > 2021-02-12 11:47:26.187718 I [32334/32405] TVRecEvent
> > recorders/ExternalStreamHandler.cpp:470 (Get) - ExternSH[21]: Creating new
> > stream handler 21 for /usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf
> > 2021-02-12 11:47:26.187734 I [32334/32405] TVRecEvent
> > recorders/ExternalChannel.cpp:52 (Open) -
> > ExternChan[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf): Opened
> > 2021-02-12 11:47:26.187748 I [32334/32405] TVRecEvent
> > recorders/dtvchannel.cpp:159 (SetChannelByString) -
> > DTVChan[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > SetChannelByString(1):
> > 2021-02-12 11:47:26.187759 I [32334/32405] TVRecEvent cardutil.cpp:2055
> > (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() input 21
> > 2021-02-12 11:47:26.188661 I [32334/32405] TVRecEvent cardutil.cpp:2087
> > (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 22
> > 2021-02-12 11:47:26.188682 I [32334/32405] TVRecEvent cardutil.cpp:2087
> > (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 23
> > 2021-02-12 11:47:26.188698 I [32334/32405] TVRecEvent cardutil.cpp:2087
> > (GetConflictingInputs) - CardUtil[21]: GetConflictingInputs() got input 24
> > 2021-02-12 11:47:26.188765 I [32334/32405] TVRecEvent
> > recorders/channelbase.cpp:259 (IsInputAvailable) - ChannelBase[21]: Input
> > is free on 0/0
> > 2021-02-12 11:47:26.190694 E [32334/32405] TVRecEvent
> > dtvmultiplex.cpp:412 (ParseTuningParams) - DTVMux: ParseTuningParams --
> > Unknown tuner type = 0xffffffff80000000
> > 2021-02-12 11:47:26.190750 E [32334/32405] TVRecEvent
> > recorders/dtvchannel.cpp:290 (SetChannelByString) -
> > DTVChan[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > SetChannelByString(1): Failed to initialize multiplex options
> > 2021-02-12 11:47:26.190761 I [32334/32405] TVRecEvent
> > recorders/dtvchannel.cpp:320 (SetChannelByString) -
> > DTVChan[21](/usr/bin/mythexternrecorder --conf
> > /home/peter/delat/script/mythtv-svtplay-external-recorder.conf):
> > SetChannelByString(1): failure
> > 2021-02-12 11:47:26.190774 E [32334/32405] TVRecEvent tv_rec.cpp:3737
> > (TuningFrequency) - TVRec[21]: Failed to set channel to 1. Reverting to
> > kState_None
> > 2021-02-12 11:47:26.190803 I [32334/32405] TVRecEvent tv_rec.cpp:1057
> > (HandleStateChange) - TVRec[21]: Changing from WatchingLiveTV to None
> >
>
> Are you running v31 or v31-latest (v31-fixes)? If you are not running the
> latest version of v31 you may be hitting a bug preventing it from handling
> the situation where there are channels but no tuner. I had forgotten about
> that because it was fixed so long ago.

dpkg -l mythtv*
ii mythtv 31.0+fixes20201214.gite9b795a1e4-dmo0~bpo10+1 all Personal video recorder application (client and server)
ii mythtv-backend 31.0+fixes20201214.gite9b795a1e4-dmo0~bpo10+1 i386 Personal video recorder application (server)
ii mythtv-common 31.0+fixes20210206.git7763a3363d-dmo0~bpo10+1 all Personal video recorder application (common data)
ii mythtv-database 31.0+fixes20210206.git7763a3363d-dmo0~bpo10+1 all Personal video recorder application (database)
ii mythtv-doc 30.0+fixes20201003.git622c94965e-dmo1+deb10u2 all Personal video recorder application (documentation)
ii mythtv-frontend 31.0+fixes20201214.gite9b795a1e4-dmo0~bpo10+1 i386 Personal video recorder application (client)
ii mythtv-transcode 31.0+fixes20201214.gite9b795a1e4-dmo0~bpo10+1 i386 Utilities used for transcoding MythTV tasks

This is from deb-multimedia.org and I don't see any more newer.

/Peter
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org