Jump to content


Photo

Direct Play vs Direct Streaming vs Transcoding

Direct Play Direct Streaming Transcoding

  • Please log in to reply
57 replies to this topic

#1 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 12651 posts
  • Local time: 08:54 AM

Posted 02 July 2017 - 07:03 PM

When playing a video, in the server dashboard you will see one of three ways it is being played/transported.
 
Direct Play:
 
595976132904c_Snapshot_36.jpg
 
 
This is when the player/client (Theater, Roku, Fire stick etc) supports the container (MKV, AVI, MP4 etc), the codecs (h264, h265, XVID, TrueHD, DTS etc), has direct access to the file and has enough network bandwidth to stream it. This will mean that the server has nothing to do but tell the player where the file is and the player does the rest.
 
Direct Streaming:
 
5959762c4ec82_Snapshot_38.jpg
 
The red bar indicates how much of the file has been converted and the green bar indicates your present position in the video.
 
This is when the server has some involvement. The reasons for this are:
 
  • The audio is not supported by the player (codec, frequency, etc). In this case, the server will demux the file, adjust the audio, remux the file and stream it to the player with no change to the video
  • The container isn't supported by the player (MKV, AVI, MP4 etc). In this case, the server will demux the file and remux it in a supported container, with no change to the audio or video.
  • The player does not have direct access to the file and the server has to 'serve' it over http, to give the player access. In this case, nothing is changed if the player supports the file properties. 
If you were to look in your logs, you would see something like this:
Output #0, segment, to 'S:\Transcode\transcoding-temp\2f99af120692a6cec93c9011bff5f30c%d.ts':
  Metadata:
    encoder         : Lavf57.32.100
    Stream #0:0: Video: h264, yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn, 23.98 tbc
    Stream #0:1: Audio: aac (LC), 48000 Hz, 5.1, fltp (24 bit), 384 kb/s (default)
    Metadata:
      encoder         : Lavc57.34.100 aac
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (truehd (native) -> aac (native))
 
Transcoding:
 
595977ea32049_Snapshot_37.jpg
 
This is when the server has to transcode/change the video, but not always the audio.  Reasons for this are:
 
  • Your network doesn't have enough bandwidth to stream the file. This often occurs when using a mobile device on the mobile network. An example would be if your movie has a bitrate of 10 Mb/s but your internet connection has less than that. The server will run an initial bandwidth check and then transcode the file to a bitrate that will be supported.
  • The player doesn't support the video codec (h264, h265, XVID etc). The server will then transcode it to a supported codec.
  • If you have subtitles burnt into the video (there is an option for this, in the sever)
 
 
If you were to look in your logs, you would see something like this:
Output #0, segment, to 'S:\Transcode\transcoding-temp\0e7889e84f15dec1ba3218cabc493695%d.ts':
  Metadata:
    encoder         : Lavf57.32.100
    Stream #0:0: Video: h264 (h264_qsv), nv12, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 33501 kb/s, 23.98 fps, 90k tbn, 23.98 tbc
    Metadata:
      encoder         : Lavc57.34.100 h264_qsv
    Side data:
      cpb: bitrate max/min/avg: 33501937/0/33501937 buffer size: 67003874 vbv_delay: -1
    Stream #0:1: Audio: aac (LC), 48000 Hz, 5.1, fltp (24 bit), 384 kb/s
    Metadata:
      encoder         : Lavc57.34.100 aac
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (h264_qsv) -> h264 (h264_qsv))
  Stream #0:2 -> #0:1 (dts (dca) -> aac (native))

Please note that the items in parenthesis, eg. (h264, h265), are just examples and doesn't mean that they are not supported.

 


Edited by Doofus, 25 April 2018 - 03:32 PM.

  • Diedrich likes this

#2 CBers OFFLINE  

CBers

    Advanced Member

  • Moderators
  • 15034 posts
  • Local time: 04:54 PM
  • LocationKent, England.

Posted 03 July 2017 - 03:34 AM

Your examples of Direct Streaming and Transcoding are basically the same.

You are correct in that they are converting different things for different reasons, but at the very least that are Transcoding or Transcoded Streaming.

Not saying you are wrong, but it is the description in the dashboard that is wrong.

#3 ebr ONLINE  

ebr

    Chief Bottle Washer

  • Administrators
  • 47660 posts
  • Local time: 11:54 AM

Posted 03 July 2017 - 08:21 AM

You are correct in that they are converting different things for different reasons, but at the very least that are Transcoding or Transcoded Streaming.

 

But, if we use the term "transcoding" when absolutely any modification is happening then it becomes not very useful at all.

 

The reality is that the only conversion that really has much of an impact on server resources is the video stream.  But, whenever some of you guys see the term "transcoding" you freak out :) - even if everything is working fabulously.

 

So, we need to come up with terms that relay useful information to the end user without causing people to think something is wrong when it isn't.



#4 CBers OFFLINE  

CBers

    Advanced Member

  • Moderators
  • 15034 posts
  • Local time: 04:54 PM
  • LocationKent, England.

Posted 03 July 2017 - 08:30 AM

Transcoding is transcoding, whether it is the audio only, or both audio and video.

Emby needs to be honest with its users instead of pandering to potential Plex users.

Direct Play is direct from the source.

Direct Stream is a stream via the server, although there is no conversion.

Everything else is a form of transcoded stream.

Perhaps Transcoded Remux?

I know some apps have "Stats for Nerds", but that might confuse people more.
  • Diedrich and shorty1483 like this

#5 ebr ONLINE  

ebr

    Chief Bottle Washer

  • Administrators
  • 47660 posts
  • Local time: 11:54 AM

Posted 03 July 2017 - 08:43 AM

Transcoding is transcoding, whether it is the audio only, or both audio and video.

 

No "transcoding is not transcoding".  Converting just an audio stream has a vastly different implication than converting a video stream.

 

We need to convey useful information to the user and we need to exist in a competitive marketplace or none of this matters - because we won't exist.



#6 CBers OFFLINE  

CBers

    Advanced Member

  • Moderators
  • 15034 posts
  • Local time: 04:54 PM
  • LocationKent, England.

Posted 03 July 2017 - 10:02 AM

No "transcoding is not transcoding". Converting just an audio stream has a vastly different implication than converting a video stream.



I think you're too worried about the effect on the server.

It's true that an audio conversion is a lot less CPU intensive than a full video & audio conversion, but transcoding is transcoding.

https://en.m.wikiped...iki/Transcoding

We need to convey useful information to the user and we need to exist in a competitive marketplace or none of this matters - because we won't exist.


Well using Direct Stream for remuxed audio is still not correct.

Yes, Plex have a lot more users and that's who you are trying to attract, but IMHO, Emby is far superior in many ways to Plex.
  • Angelblue05 likes this

#7 Angelblue05 OFFLINE  

Angelblue05

    Advanced Member

  • Developers
  • 12622 posts
  • Local time: 10:54 AM

Posted 03 July 2017 - 06:07 PM

Here is my take on it:

 

The file is either played as is, or it's modified in some way.

 

Direct Play - Played as is.  Network or HTTP

Direct stream - ??

Transcode - Modified in some way. Doesn't matter the degree.

 

What I'd like to see is the transcode intensity translated in color for the playback/buffering bar. I reckon, the red is what makes people worried about Transcode. The red color == bad for my CPU. Color could easily change that perspective.

  • Yellow/Green-ish bar: File lightly modified. i.e. container swap, audio remux 
  • Red bar: Everything else that's more intense

This encapsulate all forms of playback, in a simple way that is understandable even to a 5 year old. You really don't need a new term "Direct stream" that makes everyone lose their mind.

 

If you say direct stream and you include all light modification, then what does "Direct" stand for? It's smarter to classify playback with played as is or modified. Not, played as is, lightly modified, modified.


Edited by Angelblue05, 03 July 2017 - 07:12 PM.

  • CBers, DGMayor, overClocked! and 3 others like this

#8 CBers OFFLINE  

CBers

    Advanced Member

  • Moderators
  • 15034 posts
  • Local time: 04:54 PM
  • LocationKent, England.

Posted 03 July 2017 - 06:46 PM

Are the FAQs forum restricted in who can post?

Seems only developers, mods and Admins can post.

How/where was this thread originally created?
  • Doofus likes this

#9 Happy2Play OFFLINE  

Happy2Play

    Trial and Error

  • Moderators
  • 16263 posts
  • Local time: 08:54 AM
  • LocationWashington State

Posted 03 July 2017 - 07:22 PM

Are the FAQs forum restricted in who can post?

Seems only developers, mods and Admins can post.

How/where was this thread originally created?

 

Looks like it as I tested with a user account and wasn't able to reply.

 

I actually moved it from General/Windows as it is more appropriate under Knowledge Base.

 

But it looks like the Knowledge Base section is locked down so if this is going to be a discussion on these terms it will need to be relocated to an area the public can respond to.

 

@Abobader @Luke @ebr



#10 CBers OFFLINE  

CBers

    Advanced Member

  • Moderators
  • 15034 posts
  • Local time: 04:54 PM
  • LocationKent, England.

Posted 03 July 2017 - 07:24 PM

Well it's now more of a discussion than an FAQ, so perhaps move it back.

Once we get the correct definitions set up in Emby then we can revisit it as an FAQ.

#11 Angelblue05 OFFLINE  

Angelblue05

    Advanced Member

  • Developers
  • 12622 posts
  • Local time: 10:54 AM

Posted 03 July 2017 - 07:42 PM

Simple enough? Two terms, no hassle. Please consider  :lol:

 

595ad63cc700d_playback.jpg


  • CBers, porkbone and clarkss12 like this

#12 ebr ONLINE  

ebr

    Chief Bottle Washer

  • Administrators
  • 47660 posts
  • Local time: 11:54 AM

Posted 03 July 2017 - 08:25 PM

The problem is no one will pay attention to the different colors or know what they mean and with the single word "Transcoding" there, some people will freak out and post out here that Plex is "Direct Streaming" the same item that Emby is transcoding when they are actually doing the exact same thing.

 

I think we need to just provide a bit more detail that shows the audio and video treatment separately (e.g. Direct Video / Convert Audio).



#13 FrostByte OFFLINE  

FrostByte

    Advanced Member

  • ForumMod
  • 4357 posts
  • Local time: 11:54 AM
  • LocationThe UP

Posted 03 July 2017 - 08:35 PM

Transcoding Audio Only or Converting Audio I think is easy for people to understand.  Direct Streaming by itself really tells me nothing without looking at the logs


  • CBers likes this

#14 Doofus OFFLINE  

Doofus

    Advanced Member

  • Members
  • 12651 posts
  • Local time: 08:54 AM

Posted 03 July 2017 - 08:50 PM

Here's a thought. What about putting something in the player overlay? To specify what is occurring. Like "Transcoding Audio" etc.
  • FrostByte and clarkss12 like this

#15 FrostByte OFFLINE  

FrostByte

    Advanced Member

  • ForumMod
  • 4357 posts
  • Local time: 11:54 AM
  • LocationThe UP

Posted 03 July 2017 - 08:59 PM

Here's a thought. What about putting something in the player overlay? To specify what is occurring. Like "Transcoding Audio" etc.

 

Some clients do this, wish others would.  That way I wouldn't have to walk from my TV all the way to my server to see what is happening.  


  • clarkss12 likes this

#16 Abobader OFFLINE  

Abobader

    Super-Tester

  • Administrators
  • 9407 posts
  • Local time: 07:54 PM

Posted 03 July 2017 - 09:30 PM

Are the FAQs forum restricted in who can post?

Seems only developers, mods and Admins can post.

How/where was this thread originally created?

 

 

Looks like it as I tested with a user account and wasn't able to reply.

 

I actually moved it from General/Windows as it is more appropriate under Knowledge Base.

 

But it looks like the Knowledge Base section is locked down so if this is going to be a discussion on these terms it will need to be relocated to an area the public can respond to.

 

@Abobader @Luke @ebr

 

 

Good day,

 

Yes, the team and selected group can create thread on the K B forums section.

 

Some thread been moved from general/supports forums to that section by the team.

 

This how we setup things from the start, nothing change here.

 

My best


  • CBers likes this

#17 Diedrich OFFLINE  

Diedrich

    Advanced Member

  • Members
  • 672 posts
  • Local time: 11:54 AM

Posted 03 July 2017 - 10:52 PM



I think we need to just provide a bit more detail that shows the audio and video treatment separately (e.g. Direct Video / Convert Audio).



Here's a thought. What about putting something in the player overlay? To specify what is occurring. Like "Transcoding Audio" etc.


Simple enough? Two terms, no hassle. Please consider

595ad63cc700d_playback.jpg

Combine these ideas and you have full transparency into what's happening with the playback.

Show different colored bars, but also be succinct in the textual overlay as to whether it's audio, video, or both that are being modified for the client.
  • overClocked!, Angelblue05, shorty1483 and 1 other like this

#18 Angelblue05 OFFLINE  

Angelblue05

    Advanced Member

  • Developers
  • 12622 posts
  • Local time: 10:54 AM

Posted 03 July 2017 - 11:13 PM

The problem is no one will pay attention to the different colors or know what they mean and with the single word "Transcoding" there, some people will freak out and post out here that Plex is "Direct Streaming" the same item that Emby is transcoding when they are actually doing 

 

I think they would pay attention. I know I only pay attention when I see red that is, which in my example is truly worst case scenario. Everything else is just "nice to know" info. If everything works, you shouldn't worry. If you want to optimize, then it's easy to do without checking your logs.

 

Please answer this @ebr : What does "Direct" stand for in direct stream? It's near impossible to understand the term direct stream.

Direct stream, to me, means playing the file as-is via a stream. The term "direct" stream is even more meaningless if you include light modifications. In fact, it makes it anything but direct.

 

Transcode by definition is the file being modified. That's why I believe my solution is the best long term strategy. And I mean this, in the nicest way :)

You guys have the last word, but you are better than Plex, therefore don't let them limit you.

 

Speaking as a user: We just want to be given the right information, in a quick way that's simple to understand. Direct stream is not informative because it could easily be direct playing from the server OR transcoding the file lightly that has almost no effect on the CPU.


Edited by Angelblue05, 04 July 2017 - 12:00 AM.

  • CBers and speechles like this

#19 CBers OFFLINE  

CBers

    Advanced Member

  • Moderators
  • 15034 posts
  • Local time: 04:54 PM
  • LocationKent, England.

Posted 04 July 2017 - 03:50 AM

Please answer this @ebr : What does "Direct" stand for in direct stream? It's near impossible to understand the term direct stream.[/font][/color]
Direct stream, to me, means playing the file as-is via a stream. The term "direct" stream is even more meaningless if you include light modifications. In fact, it makes it anything but direct.

[color=rgb(40,40,40)][font=Romboto]



Direct Streaming via the server, is just creation of an http stream of the original, so that the end client app can play it back, as the client app can't access the file directly.

So technically, it's not Direct at all, other than from the server, so perhaps another term is required.

#20 Angelblue05 OFFLINE  

Angelblue05

    Advanced Member

  • Developers
  • 12622 posts
  • Local time: 10:54 AM

Posted 04 July 2017 - 04:01 AM

Direct Play means playing the original file, yes? Transcoding means playing the file modified in some way. The transport method does not matter, so a different term would not be needed. You only need clarification for the transport method, but they are both direct play (original file is played without modification), even when the server provides the file, due to the client not being able to access the file.

 

I didn't think Direct referred necessarily to the client "Directly" playing the file, because the server will always "directly" play the file (even if modified)...  :)

 

Edit: Anyway. I just don't want to spend time explaining this, so I'm against using a new term. I think we can make this work without it. :P


Edited by Angelblue05, 04 July 2017 - 04:10 AM.






Also tagged with one or more of these keywords: Direct Play, Direct Streaming, Transcoding

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users