INTERACT FORUM

Please login or register.

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

Author Topic: Problems with DLNA video streaming to TV  (Read 5189 times)

zezo

  • Member
  • *
  • Posts: 3
Problems with DLNA video streaming to TV
« on: May 12, 2014, 04:10:01 am »

Hi everyone,
recently I decided to give JRiver MC 19 a try. I heavily use DLNA to stream movies and serials from my windows PC to my smart TV Samsung UE46ES6710S. I've been using Serviio server for quite some time and while it does the job well I want to try some more feature packed solution like JRiver which offers also DLNA Controller and DLNA Renderer/Player besides the server functionality.
Now, as much as I like the solution provided I could not help getting frustrated by some shortcomings I came across.

1. Unnecessary video transcoding
Ok, I went through this topic:
http://yabb.jriver.com/interact/index.php?topic=79279.0
which was reported about audio transcoding issues but then the discussion involved video transcoding as well. Unfortunately it came to no solution. Here is my take on this issue. Sorry for some comparisons with Serviio but I have no better way of explaining the problem.

- I've configured the Samsung BD/TV profile for the JRiver DLNA server.
- I have the following AVI file that is natively supported by the TV without any transcoding:
Format                                   : AVI
Format/Info                             : Audio Video Interleave
File size                                  : 351 MiB
Duration                                 : 58mn 6s
Overall bit rate mode                : Variable
Overall bit rate                        : 844 Kbps
Writing application                    : VirtualDubMod 1.5.10.2 (build 2540/release)
Writing library                          : VirtualDubMod build 2540/release

Video
ID                                          : 0
Format                                    : MPEG-4 Visual
Format profile                           : Advanced Simple@L5
Format settings, BVOP               : 2
Format settings, QPel                : No
Format settings, GMC                : No warppoints
Format settings, Matrix              : Default (H.263)
Codec ID                                 : XVID
Codec ID/Hint                           : XviD
Duration                                  : 58mn 6s
Bit rate                                   : 704 Kbps
Width                                     : 624 pixels
Height                                    : 352 pixels
Display aspect ratio                   : 16:9
Frame rate                               : 23.976 fps
Color space                              : YUV
Chroma subsampling                   : 4:2:0
Bit depth                                 : 8 bits
Scan type                                : Progressive
Compression mode                     : Lossy
Bits/(Pixel*Frame)                     : 0.134
Stream size                              : 293 MiB (83%)
Writing library                           : XviD 1.2.1 (UTC 2008-12-04)

- in JRiver's Media Network settings I set Video Mode to "Original". Then the video plays nicely without transcoding. CPU usage therefore is low is low. So far so good.
- in JRiver's Media Network settings I set Video Mode to "Specified output format only when necessary. Now the video is always transcoded and CPU is at 100% usage. Now this was unexpected as this conversion is totally unnecessary. Not to mention the high CPU that it causes.
- Serviio does not transcode that video as expected and CPU is always low.

- then I decided to try with MKV container that is not naively supported by my TV so some transcoding must be done no matter what. This is the file I used:
Format                                   : Matroska
Format version                         : Version 4 / Version 2
File size                                  : 1.45 GiB
Duration                                 : 44mn 31s
Overall bit rate                        : 4 659 Kbps
Encoded date                          : UTC 2014-05-05 13:35:18
Writing application                    : mkvmerge v6.7.0 ('Back to the Ground') 64bit built on Jan  8 2014 14:31:51
Writing library                          : libebml v1.3.0 + libmatroska v1.4.1

Video
ID                                         : 1
Format                                   : AVC
Format/Info                            : Advanced Video Codec
Format profile                          : High@L4.1
Format settings, CABAC            : Yes
Format settings, ReFrames        : 9 frames
Codec ID                                : V_MPEG4/ISO/AVC
Duration                                 : 44mn 31s
Bit rate                                  : 4 118 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                 : 16:9
Frame rate mode                     : Constant
Frame rate                             : 23.976 fps
Color space                            : YUV
Chroma subsampling                 : 4:2:0
Bit depth                                : 8 bits
Scan type                              : Progressive
Bits/(Pixel*Frame)                    : 0.186
Stream size                            : 1.28 GiB (88%)
Writing library                         : x264 core 142 r2409 d6b4e63
Encoding settings                    : cabac=1 / ref=9 / deblock=1:-1:-1 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=28 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=18 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=5 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=18.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language                               : English
Default                                  : Yes
Forced                                  : No
Matrix coefficients                   : BT.709

- in JRiver's Media Network settings I set Video Mode to "Original". Then the video cannot be played which is expected.
- in JRiver's Media Network settings I set Video Mode to "Specified output format only when necessary. Now the video is always transcoded (expected) and CPU is at 100% usage (bad).
- Serviio also does transcode that video but CPU is at ~5%. It might be that the conversion format used is less demanding than the one used by JRiver, I don't know that for sure and don't know how to check this in serviio, but at least I did not see any noticeable difference in picture quality.


2. This is about the Fast Forward problem, same one discussed in this topic:
http://yabb.jriver.com/interact/index.php?topic=84425.0
While I understand the limitations explained I found an interesting thing. The MKV file that I mentioned in issue 1 cannot be controlled (time search, fast forward) with JRiver besides play, stop and pause. With Serviio, which also does conversion as I mentioned, time search and fast forward are also possible.


So, those are the main issues I came across and because of them I cannot truly enjoy this otherwise great software. Maybe if you get the time you can think of some improvements. At the very lease you can provide an override option to skip transcoding for specified containers/codecs. As for the high CPU - I tried other Formats e.g. "MPEG2/DVD autofps stream" but it only reduced the CPU usage to ~50%.

Cheers!
Logged

AndrewFG

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3392
Re: Problems with DLNA video streaming to TV
« Reply #1 on: May 12, 2014, 05:56:28 am »

- in JRiver's Media Network settings I set Video Mode to "Original". Then the video plays nicely without transcoding. CPU usage therefore is low is low. So far so good.
- in JRiver's Media Network settings I set Video Mode to "Specified output format only when necessary. Now the video is always transcoded and CPU is at 100% usage. Now this was unexpected as this conversion is totally unnecessary. Not to mention the high CPU that it causes.
- Serviio does not transcode that video as expected and CPU is always low.

...

- in JRiver's Media Network settings I set Video Mode to "Original". Then the video cannot be played which is expected.
- in JRiver's Media Network settings I set Video Mode to "Specified output format only when necessary. Now the video is always transcoded (expected) and CPU is at 100% usage (bad).
- Serviio also does transcode that video but CPU is at ~5%. It might be that the conversion format used is less demanding than the one used by JRiver, I don't know that for sure and don't know how to check this in serviio, but at least I did not see any noticeable difference in picture quality.


I won't comment on the CPU transcoder load issue, since I don't know anything about that :(

But as we have discussed before, the "Specified output format only when necessary" selection is misleading, since MC does not have a mechanism for determining what is, and what is not, "necessary".  The solution is that MC must call GetProtocolInfo on the renderer and choose an output stream format 1) which the renderer includes in its SinkProtocolInfo list, and 2) which is equal to or better quality than the source media format. *

And BTW if MC were to do the above, then the "Specified output format only when necessary" selection could then be called simply called "Automatic"...

Many other features of MC have an Automatic negotiation setting, but bob has always argued in the past that this is impossible for MC to do it in this case because some renderers either don't implement GetProtocolInfo / SinkProtocolInfo or do so only incompletely. But personally I don't agree with that argument, since a) in the case that SinkProtocolInfo delivered an incomplete list MC would still select from that list, b) in the case that SinkProtocolInfo delivered an empty list (or the function failed) then MC could fall back on "Original" or a basic minimum format, and c) if the users aren't happy with any of the above they can still anyway select one of the other options "Original" or "Always convert".. *

* EDIT: I suggest that a complete "Automatic" format selection algorithm would be as follows:

  • If the original format is in [ 1) ] then choose that as the solution
  • If no solution has been found so far, then seek a solution in [ 1) AND 2) ]
  • If no solution has been found so far, then seek the best solution in [ 1) ] alone
  • If no solution has been found so far, then choose "Original" (or alternatively a minimal setting like mp3 or avi)
  • If none of the above works, then the user must manually choose "Original" or "Always convert"
Logged
Author of Whitebear Digital Media Renderer Analyser - http://www.whitebear.ch/dmra.htm
Author of Whitebear - http://www.whitebear.ch/mediaserver.htm

zezo

  • Member
  • *
  • Posts: 3
Re: Problems with DLNA video streaming to TV
« Reply #2 on: May 27, 2014, 11:43:51 am »

This all sounds good but is someone willing to implement this?
Logged
Pages: [1]   Go Up