Live TV not working

I have freshly installed Jellyfin on a Linux Mint 19 computer. Everything seems to be working fine exept for TV using a legacy HDHR Dual (non-DLNA). All I get is a spinning circle when trying to watch Live TV and Recordings also fail. I have updated the firmware on the hdhr and rescanned channels using the hdhr app. I have added a XML guide and mapped the channels, but Jellyfin doesn’t seem to be able to connect to the tuner. I can successfully watch the streams from the tuner with the hdhr app and VLC and it was previously working on the same machine using MythTV.

I have followed the instructions found here : https://emby.media/community/index.php?/topic/68975-hdhr-dual-live-tv-not-working/

Here is the log data:

[2020-04-10 08:15:49.507 -05:00] [INF] GetPostedPlaybackInfo profile: DeviceProfile { Name: null, Id: null, Identification: null, FriendlyName: null, Manufacturer: null, ManufacturerUrl: null, ModelName: null, ModelDescription: null, ModelNumber: null, ModelUrl: null, SerialNumber: null, EnableAlbumArtInDidl: False, EnableSingleAlbumArtLimit: False, EnableSingleSubtitleLimit: False, SupportedMediaTypes: "Audio,Photo,Video", UserId: null, AlbumArtPn: null, MaxAlbumArtWidth: 0, MaxAlbumArtHeight: 0, MaxIconWidth: null, MaxIconHeight: null, MaxStreamingBitrate: 120000000, MaxStaticBitrate: 100000000, MusicStreamingTranscodingBitrate: 192000, MaxStaticMusicBitrate: null, SonyAggregationFlags: null, ProtocolInfo: null, TimelineOffsetSeconds: 0, RequiresPlainVideoItems: False, RequiresPlainFolders: False, EnableMSMediaReceiverRegistrar: False, IgnoreTranscodeByteRangeRequests: False, XmlRootAttributes: [], DirectPlayProfiles: [DirectPlayProfile { Container: "mp4,m4v", AudioCodec: "mp3,aac,opus,flac,vorbis", VideoCodec: "h264,vp8,vp9", Type: Video }, DirectPlayProfile { Container: "mkv", AudioCodec: "mp3,aac,opus,flac,vorbis", VideoCodec: "h264,vp8,vp9", Type: Video }, DirectPlayProfile { Container: "mov", AudioCodec: "mp3,aac,opus,flac,vorbis", VideoCodec: "h264", Type: Video }, DirectPlayProfile { Container: "opus", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "mp3", AudioCodec: "mp3", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "aac", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "m4a,m4b", AudioCodec: "aac", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "flac", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webma,webm", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "wav", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "ogg", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webm", AudioCodec: "vorbis,opus", VideoCodec: "VP8", Type: Video }, DirectPlayProfile { Container: "webm", AudioCodec: "vorbis,opus", VideoCodec: "VP9", Type: Video }], TranscodingProfiles: [TranscodingProfile { Container: "ts", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "hls", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 1, SegmentLength: 0, BreakOnNonKeyFrames: True }, TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "opus", Type: Audio, VideoCodec: null, AudioCodec: "opus", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "wav", Type: Audio, VideoCodec: null, AudioCodec: "wav", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "opus", Type: Audio, VideoCodec: null, AudioCodec: "opus", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "wav", Type: Audio, VideoCodec: null, AudioCodec: "wav", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mkv", Type: Video, VideoCodec: "h264,vp8,vp9", AudioCodec: "mp3,aac,opus,flac,vorbis", Protocol: null, EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: True, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "ts", Type: Video, VideoCodec: "h264", AudioCodec: "mp3,aac", Protocol: "hls", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 1, SegmentLength: 0, BreakOnNonKeyFrames: True }, TranscodingProfile { Container: "webm", Type: Video, VideoCodec: "vpx", AudioCodec: "vorbis", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp4", Type: Video, VideoCodec: "h264", AudioCodec: "mp3,aac,opus,flac,vorbis", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: null, MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }], ContainerProfiles: [], CodecProfiles: [CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: Equals, Property: IsSecondaryAudio, Value: "false", IsRequired: False }], ApplyConditions: [], Codec: "aac", Container: null }, CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: Equals, Property: IsSecondaryAudio, Value: "false", IsRequired: False }], ApplyConditions: [], Codec: null, Container: null }, CodecProfile { Type: Video, Conditions: [ProfileCondition { Condition: NotEquals, Property: IsAnamorphic, Value: "true", IsRequired: False }, ProfileCondition { Condition: EqualsAny, Property: VideoProfile, Value: "high|main|baseline|constrained baseline|high 10", IsRequired: False }, ProfileCondition { Condition: LessThanEqual, Property: VideoLevel, Value: "51", IsRequired: False }], ApplyConditions: [], Codec: "h264", Container: null }], ResponseProfiles: [ResponseProfile { Container: "m4v", AudioCodec: null, VideoCodec: null, Type: Video, OrgPn: null, MimeType: "video/mp4", Conditions: [] }], SubtitleProfiles: [SubtitleProfile { Format: "vtt", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "ass", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "ssa", Method: External, DidlMode: null, Language: null, Container: null }] }
[2020-04-10 08:15:49.512 -05:00] [INF] User policy for "chris". EnablePlaybackRemuxing: False EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2020-04-10 08:15:49.513 -05:00] [INF] Profile: "Unknown Profile", Path: "http://192.168.1.121", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-04-10 08:15:49.521 -05:00] [INF] Profile: "Unknown Profile", No direct play profiles found for Path: "http://192.168.1.121"
[2020-04-10 08:15:49.526 -05:00] [INF] Opening channel stream from "Emby", external channel Id: "hdhr_4.1"
[2020-04-10 08:15:49.527 -05:00] [INF] Streaming Channel hdhr_4.1
[2020-04-10 08:15:49.528 -05:00] [INF] GetChannelStream: channel id: "hdhr_4.1". stream id: "native_dcae7ee91da8349d9a3089106668280d_2cc6cc36f0fbd418e8fd3965c953e69c" profile: "native"
[2020-04-10 08:15:49.533 -05:00] [INF] Opening HDHR UDP Live stream from "192.168.1.121"
[2020-04-10 08:15:49.534 -05:00] [ERR] Error processing request
System.NullReferenceException: Object reference not set to an instance of an object.
   at Emby.Dlna.Eventing.EventManager.RenewEventSubscription(String subscriptionId, String notificationType, String requestedTimeoutString, String callbackUrl)
   at Emby.Dlna.Api.DlnaServerService.ProcessEventRequest(IEventManager eventManager)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName)
   at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-04-10 08:15:49.538 -05:00] [ERR] Error opening live stream:
System.Net.Sockets.SocketException (99): Cannot assign requested address
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at System.Net.Sockets.TcpClient..ctor(IPEndPoint localEP)
   at Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun.HdHomerunManager.StartStreaming(IPAddress remoteIp, IPAddress localIp, Int32 localPort, IHdHomerunChannelCommands commands, Int32 numTuners, CancellationToken cancellationToken)
   at Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun.HdHomerunUdpStream.Open(CancellationToken openCancellationToken)
[2020-04-10 08:15:49.540 -05:00] [ERR] Error opening tuner
System.Net.Sockets.SocketException (99): Cannot assign requested address
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at System.Net.Sockets.TcpClient..ctor(IPEndPoint localEP)
   at Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun.HdHomerunManager.StartStreaming(IPAddress remoteIp, IPAddress localIp, Int32 localPort, IHdHomerunChannelCommands commands, Int32 numTuners, CancellationToken cancellationToken)
   at Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun.HdHomerunUdpStream.Open(CancellationToken openCancellationToken)
   at Emby.Server.Implementations.LiveTv.TunerHosts.BaseTunerHost.GetChannelStream(String channelId, String streamId, List`1 currentLiveStreams, CancellationToken cancellationToken)
[2020-04-10 08:15:49.542 -05:00] [ERR] Error processing request
MediaBrowser.Controller.LiveTv.LiveTvConflictException: Exception of type 'MediaBrowser.Controller.LiveTv.LiveTvConflictException' was thrown.
   at Emby.Server.Implementations.LiveTv.TunerHosts.BaseTunerHost.GetChannelStream(String channelId, String streamId, List`1 currentLiveStreams, CancellationToken cancellationToken)
   at Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV.GetChannelStreamWithDirectStreamProvider(String channelId, String streamId, List`1 currentLiveStreams, CancellationToken cancellationToken)
   at Emby.Server.Implementations.LiveTv.LiveTvManager.GetChannelStream(String id, String mediaSourceId, List`1 currentLiveStreams, CancellationToken cancellationToken)
   at Emby.Server.Implementations.LiveTv.LiveTvMediaSourceProvider.OpenMediaSource(String openToken, List`1 currentLiveStreams, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStream(LiveStreamRequest request, CancellationToken cancellationToken)
   at MediaBrowser.Api.Playback.MediaInfoService.OpenMediaSource(OpenMediaSource request)
   at MediaBrowser.Api.Playback.MediaInfoService.GetPlaybackInfo(GetPostedPlaybackInfo request)
   at MediaBrowser.Api.Playback.MediaInfoService.Post(GetPostedPlaybackInfo request)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.GetTaskResult(Task task)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
1 Like

I have the same issue, same tuner. were you ever abl to solve this?

Nope, gave up and went back to my old mythtv/kodi setup.