Streaming Profiles and multiple cores (1 Viewer)

mrceolla

Portal Pro
December 11, 2010
136
12
Hello,

Back in the day w/ GMAWebServices one needed to edit the streaming profiles to make use of multiple cores in their computer. Is this still the case? I have 8 cores to play with in this box so I'd like to make sure they're getting used.

When I tested streaming some HD videos to my phone over the LAN w/ aMPdroid I noticed it would pause every few seconds as if it were rebuffering but since I was on the LAN and using a 'medium' streaming profile I figured the problem was the CPU wasn't keeping up. I also noticed MPExtended using about 15% of my CPU which makes me think it's limiting itself to 1 or 2 cores.

What, if any, profiles can make use of multiple cores or threads? How can I adjust them to use the number I want? I found some instructions for the ffmpeg encoder back in the GmaWebServices days but does that still work?

Thank you!
 

Oxan

Retired Team Member
  • Premium Supporter
  • August 29, 2009
    1,730
    1,124
    Home Country
    Netherlands Netherlands
    The VLC profiles should use all cores by default. For the ffmpeg profiles you can add the -threads X option more or less the same way as in GMA (you should do it in the <codecParameters> section of C:\ProgramData\MPExtended\StreamingProfiles.xml).

    Beware that StreamingProfiles.xml can be overwritten on an upgrade though - that should be solved in 0.6.
     

    mrceolla

    Portal Pro
    December 11, 2010
    136
    12
    Thanks again for the reply, Oxan,

    Does HTTP streaming use all cores by default as well? I see that appears to be some sort of variation of the VLC profiles as the Transcoder node mentions VLCWrapperHTTPLiveStreaming. However with both of them I'm getting pauses in playback when trying to stream an HD AVC mkv file. With ffmpeg set to '-threads 4', no problems. Recorded TV does not have these issues but I'm assuming that is related to the codec those files were recorded with which must take less resources to transcode.

    I have a dual Xeon setup with 2 L5420 chips, each with four 2.5Ghz cores, so 8 cores total. In task manager, when using VLC or HTTP, I see one MPExtended process consuming a max of 15 CPU. When using ffmpeg with '-threads 4' I see one ffmpeg process consuming up to 70+, which is odd since it is more than 50% and I only allotted 4 of the 8 cores, but nevermind that. The point is that the VLC profiles are not keeping up with the transcoding of certain videos and it 'appears' that they may not be making use of multiple cores. What are you thoughts on all of that?

    On a side note, I see that sometimes MPExtended transcoding processes continue to run even after the client has ended playback. Perhaps this is an aMPdroid thing or a result of having to use an external player, but if not, it would be great if MPExtended could detect a dropped client and end the transcoding process. It seems to do this some times but not all of the time. Not sure why.

    Thanks for your time!
     

    Oxan

    Retired Team Member
  • Premium Supporter
  • August 29, 2009
    1,730
    1,124
    Home Country
    Netherlands Netherlands
    Does HTTP streaming use all cores by default as well? I see that appears to be some sort of variation of the VLC profiles as the Transcoder node mentions VLCWrapperHTTPLiveStreaming. However with both of them I'm getting pauses in playback when trying to stream an HD AVC mkv file. With ffmpeg set to '-threads 4', no problems. Recorded TV does not have these issues but I'm assuming that is related to the codec those files were recorded with which must take less resources to transcode.
    HTTP Live Streaming indeed uses VLC. Which resolution do your recorded files have?

    I have a dual Xeon setup with 2 L5420 chips, each with four 2.5Ghz cores, so 8 cores total. In task manager, when using VLC or HTTP, I see one MPExtended process consuming a max of 15 CPU. When using ffmpeg with '-threads 4' I see one ffmpeg process consuming up to 70+, which is odd since it is more than 50% and I only allotted 4 of the 8 cores, but nevermind that. The point is that the VLC profiles are not keeping up with the transcoding of certain videos and it 'appears' that they may not be making use of multiple cores. What are you thoughts on all of that?
    Honestly, I don't know. I personally run MPExtended on a Core2Duo and VLC always uses 100% CPU there, so that makes me think that it always uses all cores. For the rest, we use the settings specified in StreamingProfiles.xml and VLC default settings, so not much happens on the MPExtended side here. You might've a bit more luck googling on how to make VLC use all available CPU. It can also be useful to try to transcode a file from the VLC user interface and see how much CPU that uses.

    On a side note, I see that sometimes MPExtended transcoding processes continue to run even after the client has ended playback. Perhaps this is an aMPdroid thing or a result of having to use an external player, but if not, it would be great if MPExtended could detect a dropped client and end the transcoding process. It seems to do this some times but not all of the time. Not sure why.
    That should already work, but there's a delay of (if I recall correctly) 60 seconds for aMPdroid streams that aMPdroid doesn't stop itself (which it usually does). So you might want to wait a bit.
     

    Users who are viewing this thread

    Top Bottom