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.0which 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.0While 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!