INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: JRVR playback failure  (Read 1358 times)

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
JRVR playback failure
« on: January 07, 2023, 08:37:39 am »

I've been setting up a new machine which has an intel igpu connected to a 4k tv, playback of any video fails with the "something went wrong" dialog, the logs say

Code: [Select]
0104689: 140036419000256: Playback: CJRPlaybackEngine::Play: Start
0104690: 140036419000256: Playback: CJRPlaybackEngine::Play: Volume protection: 0
0104690: 140036419000256: Playback: CJRPlaybackEngine::Play: Playing: http://10.151.167.11:63412/MCWS/v1/File/GetFile?File=1321920
0104690: 140036419000256: Playback: CJRPlaybackEngine::Play: Filetype: bdmv; Type: 18; Can play: 1; Playback object: 0x55fcefaf9060
0104690: 140036419000256: Playback: CJRPlaybackEngine::StartPlayFile: Start
0104695: 140036419000256: Playback: CJRVideoPlayerWindow::LayoutWindow: Start
0104695: 140036419000256: Playback: CJRVideoPlayerWindow::LayoutWindow: Getting rectangles
0104695: 140036419000256: Playback: CJRVideoPlayerWindow::LayoutWindow: Failed to get video rectangles
0104695: 140036419000256: Playback: CJRVideoPlayerWindow::LayoutWindow: Finish (0 ms)
0104696: 140036419000256: Playback: CJRVideoPlayerWindow::OpenFile: Start
0104696: 140036419000256: Playback: CJRVideoPlayerWindow::OpenFile: Filename: http://10.151.167.11:63412/MCWS/v1/File/GetFile?File=1321920 type: bdmv. CJRVideoPlayerWindow 0x55fcefb13a50
0104696: 140036419000256: Playback: CJRVideoEngine::Open: Start
0104696: 140036419000256: Playback: CJRVideoEngine::Open: Opening file http://10.151.167.11:63412/MCWS/v1/File/GetFile?File=1321920
0104696: 140036419000256: Playback: BufferedInternetReader::Open: Start
0104696: 140036419000256: Playback: BufferedInternetReader::RunBackgroundReader: Start
0104716: 140036419000256: Playback: BufferedInternetReader::RunBackgroundReader: Download thread 0 starting. Start 0 end -1, Is stream? 0
0104716: 140036419000256: Playback: BufferedInternetReader::RunBackgroundReader: Finish (20 ms)
0104716: 140035638675136: Playback: CBackgroundInternetReaderThread::Thread(): Start
0104716: 140035638675136: Playback: CBackgroundInternetReaderThread::Thread(): Max length = 348
0104726: 140035638675136: Playback: CBackgroundInternetReaderThread::Thread(): Finish (9 ms)
0124719: 140036419000256: Playback: BufferedInternetReader::Open: Open succeeded
0124719: 140036419000256: Playback: BufferedInternetReader::Open: Finish (20022 ms)
0124719: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124720: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124721: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124721: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124721: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124721: 140036419000256: Playback: BufferedInternetReader::Read: EOF. Returning 0
0124721: 140036419000256: Playback: CJRVideoEngine::Open: avformat_open_input failed (-1094995529)
0124721: 140036419000256: Playback: CJRVideoEngine::Open: Finish (20025 ms)
0124721: 140036419000256: Playback: CJRVideoPlayerWindow::OpenFile: Failed to open JR Video Player
0124721: 140036419000256: Playback: CJRVideoPlayerWindow::OpenFile: Finish (20025 ms)
0124722: 140036419000256: Playback: BufferedInternetReader::Close: Start
0124722: 140036419000256: Playback: BufferedInternetReader::Close: getting lock
0124722: 140036419000256: Playback: BufferedInternetReader::Close: stopping download threads and closing downloading readers
0124722: 140036419000256: Playback: BufferedInternetReader::OnThreadEnds: Start
0124722: 140036419000256: Playback: BufferedInternetReader::OnThreadEnds: Finish (0 ms)
0124722: 140036419000256: Playback: BufferedInternetReader::Close: deleting threads array

this is playing something back from a server, not sure if it indicates a server problem or a client one but "Failed to get video rectangles" makes me think client.

Any clues?
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRVR playback failure
« Reply #1 on: January 07, 2023, 09:29:00 am »

problem solved.... realised it was a client option, the default for video conversion is "original format" but this does not work for BDMV (whether 4k or HD) content and conversion is mandatory.

Something that seems odd to me though is that playing to the client from the server (i.e. allowing the client playback zone to appear in the server zone list and sending some item to that zone) worked without touching a thing. I guess this implies that server -> client always converts and/or ignores the client configuration?

The assymetric behaviour here seems confusing at best and a bug at worst.

It would be nice if MC responded to this event by saying "Playback in original format is not supported for <format>, do you want to review Client Options?" (if yes, open the dialog immediately to let you change it).

Of course it would be *even* better if MC Linux was given support for the "playback local file if it exists" option and MC dealt with the OS differences in file path handling
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient
Re: JRVR playback failure
« Reply #2 on: January 07, 2023, 11:24:44 am »

problem solved.... realised it was a client option, the default for video conversion is "original format" but this does not work for BDMV (whether 4k or HD) content and conversion is mandatory.

Something that seems odd to me though is that playing to the client from the server (i.e. allowing the client playback zone to appear in the server zone list and sending some item to that zone) worked without touching a thing. I guess this implies that server -> client always converts and/or ignores the client configuration?

The assymetric behaviour here seems confusing at best and a bug at worst.

I think the reason for that behavior is that the server is treating the client as a DLNA renderer and is using whatever settings you have configured in the "add or configure DLNA servers" dialog for sending content to the client.  By default it converts media as necessary and it absolutely ignores the client-side media network settings.  In my testing, the client-side media network settings only apply to playback on the client that's initiated from the client (to include playback initiated from Gizmo or JRemote when logged in using the client's IP or access code).  You may find that server initiated playback is converting more than just video depending on whether you've modified those defaults.  I agree that it's counterintuitive, especially given that the reverse is definitely not true (using tremote to control the server from the client is not necessarily governed by the same settings as using the server to control the client via DLNA, if that makes sense).

That's the bad news, but the good news is that you can control what the server converts or doesn't on a device by device basis using that "add or configure DLNA servers" dialog. So you can configure your way out of most issues. 
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRVR playback failure
« Reply #3 on: January 07, 2023, 02:43:31 pm »

I think the reason for that behavior is that the server is treating the client as a DLNA renderer and is using whatever settings you have configured in the "add or configure DLNA servers" dialog for sending content to the client.
thanks for clarifying. I am pretty sure I have this sort of problem with every new client I setup  :-[

I have multiple DLNA servers configured in the server, do you know which one would it use for an MC client if I haven't picked something in the "Associate with DLNA server" option?
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient
Re: JRVR playback failure
« Reply #4 on: January 07, 2023, 10:01:36 pm »

thanks for clarifying. I am pretty sure I have this sort of problem with every new client I setup  :-[

I have multiple DLNA servers configured in the server, do you know which one would it use for an MC client if I haven't picked something in the "Associate with DLNA server" option?

It's been a while since I did more extensive testing on this as I don't normally use my server to initiate playback on clients, but based on a quick test it appears to use the default Generic DLNA profile (the one that's there on a fresh install). If you've removed that one, I'm not sure which one it would use (maybe the topmost one)? 

If in doubt, it should be testable using audio files as I believe that the client's audio path will report what audio format it's receiving (i.e. I played a FLAC file, my Generic DLNA profile converts to MP3, and the client shows MP3 audio in the audio path, etc.)
Logged

Hendrik

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 10934
Re: JRVR playback failure
« Reply #5 on: January 08, 2023, 04:15:15 am »

MC to MC streaming when initiated from the client does not use the DLNA options. It uses the options in the Media Network -> Client Options section, so that the client is in full control what it requests.
When controlling this from the server, of course the server is in control, since it pushes a stream for the client to play (it doesn't say "play this file however you want", it basically says "play this stream"). Hence the difference between behavior.

Of course it would be *even* better if MC Linux was given support for the "playback local file if it exists" option and MC dealt with the OS differences in file path handling

Note that this wouldn't actually help with BDMV, since BDMV is not supported on Linux at all, since playback of those is powered by LAV Splitter on windows.
Logged
~ nevcairiel
~ Author of LAV Filters

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRVR playback failure
« Reply #6 on: January 08, 2023, 04:23:35 am »

MC to MC streaming does not use the DLNA options. It uses the options in the Media Network -> Client Options section (on the client).
and this applies regardless of whether playback is initiated by the server (send to zone) or client?
Logged

Hendrik

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 10934
Re: JRVR playback failure
« Reply #7 on: January 08, 2023, 04:25:53 am »

No, the server does not care what the client wants, the server is in control of whats going to be played. Its not asking it nicely to play a certain file, its giving it a direct stream URL to play.
Logged
~ nevcairiel
~ Author of LAV Filters

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRVR playback failure
« Reply #8 on: January 08, 2023, 04:28:20 am »

No, the server does not care what the client wants, the server is in control of whats going to be played. Its not asking it nicely to play a certain file, its giving it a direct stream URL to play.
sorry I completely missed the "when initiated from the client" part of your previous post, thanks for explaining.
Logged

bob

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 13871
Re: JRVR playback failure
« Reply #9 on: January 09, 2023, 08:59:17 am »

It's been a while since I did more extensive testing on this as I don't normally use my server to initiate playback on clients, but based on a quick test it appears to use the default Generic DLNA profile (the one that's there on a fresh install). If you've removed that one, I'm not sure which one it would use (maybe the topmost one)? 
...
Just on this point, if there is no association MC will use the first (topmost) server.
Logged
Pages: [1]   Go Up