Jump to content

Stream without Transcoding


gsnerf

Recommended Posts

Is there way to use the app on a regular laptop without it issueing the server to transcode the video?

The laptop is perfectly capable of decoding and playing those videos on it's own and in fact more powerfull than the server side in any way.

 

I have tried setting quallity to maximum but this still causes the server to transcode seemingly everything.

  • Like 1
Link to comment
Share on other sites

I have almost exclusively MKVs which according to MediaInfo mostly containing AVC(mpeg4/x264) video with audio in AC-3 and/or DTS (and also almost always optional subtitles).

Link to comment
Share on other sites

7illusions

The problem with WinRT based apps is that they do not support the MKV container and even if the computer installs codecs for mkv the app can't utilize those. So the server will have to remux it into a container that the app supports.

If you got the streaming-settings in the app set to Maximum the app will only remux the audio and video, when possible, into HLS instead, and there shouldn't be alot of CPU usage on the server.

If you play a mp4 instead of mkv the app will directstream.

Link to comment
Share on other sites

gsnerf

What I see in CPU usage indicates it is actually recoding the file, not just remuxing (not sure if video, audio or both). I only have an 1.6Ghz atom based CPU but it shouldn run on 100% on all 4 cores for just remuxing the mkv.

For reference, this is how the running ffmpeg instance is called (as you can see this is a linux build, running the current official beta):

ffmpeg -fflags +genpts -i file:/my/video/file.mkv -map_metadata -1 -threads 2 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -preset superfast -crf 23 -maxrate 7180000 -bufsize 14360000 -vsync vfr -force_key_frames expr:gte(t,n_forced*7) -copyts -flags -global_header -codec:a:0 aac -strict experimental -ac 6 -ab 320000 -af adelay=1,aresample=async=1 -hls_time 7 -start_number 0 -hls_list_size 1440 -y /usr/lib/mediabrowser-server/transcoding-temp/cfd9dcdcb988f590fcf6051d529dc172.m3u8

If I understand this correctly this tells ffmpeg to use x264 and acc codecs as output and as there is no -copy statement to be found it is not remuxing but recoding.

MediaInfo data for video and audio:

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 5 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 2h 12mn
Bit rate                                 : 11.4 Mbps
Width                                    : 1 920 pixels
Height                                   : 800 pixels
Display aspect ratio                     : 2.40:1
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.310
Stream size                              : 10.5 GiB (78%)
Writing library                          : x264 core 133 r2334 a3ac64b
Encoding settings                        : cabac=1 / ref=5 / deblock=1:-3:-3 / analyse=0x3:0x113 / me=umh / subme=7 / psy=1 / psy_rd=0.99:0.01 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-3 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=18.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:0.90
Language                                 : English
Default                                  : Yes
Forced                                   : No

Audio #1
ID                                       : 2
Format                                   : DTS
Format/Info                              : Digital Theater Systems
Mode                                     : 16
Format settings, Endianness              : Big
Codec ID                                 : A_DTS
Duration                                 : 2h 12mn
Bit rate mode                            : Constant
Bit rate                                 : 1 510 Kbps
Channel(s)                               : 6 channels
Channel positions                        : Front: L C R, Side: L R, LFE
Sampling rate                            : 48.0 KHz
Bit depth                                : 24 bits
Compression mode                         : Lossy
Stream size                              : 1.39 GiB (10%)
Language                                 : English
Default                                  : Yes
Forced                                   : No

From this I guess it 1. recodes the audio from DTS to AAC and 2. recodes the video as the -maxrate (which I assume is the bitrate to be used for the videostream) is way lower than the movies setting.

The question now is: does the request somehow misses any information or does the server screw up? I couldn't find any information about the request in the servers logs yet, but I'll try to set up debug logging to see more over the weekend.

 

I also noticed that trying to change the audio track doesn't work. I'm not sure if this is just my server not responding quickly enough but monitoring the running processes indicates that it didn't try to stop the old recoding process to start a new, so that might be server side issue. On that matter I'd suggest to allow selecting the audio/subtile languages from the movie screen before actually start playing.

Link to comment
Share on other sites

  • 2 months later...

Just a follow up to this.

 

I have hdmi out on my tablet - (when playing via media player all the audio formats work (dts /AC3) - when using media browser they transcode - any options coming on this?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...