Only one core used by wmsmpeg when transcoding

paaland
Posts: 5
Joined: Mon Feb 08, 2010 9:10 am

Only one core used by wmsmpeg when transcoding

Post by paaland »

I have an AMD Athlon 64 X2 (BE2300) cpu, which is a dual core cpu running at 1.9 GHz. When transcoding for my xbox 360 one core is running at 100% and the other core is idle (resulting in overall CPU load at 50%). Sometimes, especially on HD content, the playback stutters and rebuffers quite often.

Is there any way or making wmsmpeg.exe use both cores, or any other encoder that I can use which is more efficient on multi-core cpu's? I imagine that if both cores were used it might be enough so the rebuffering problem goes away.
Eugene
Posts: 2940
Joined: Tue Nov 17, 2009 8:05 pm

Re: Only one core used by wmsmpeg when transcoding

Post by Eugene »

paaland wrote:I have an AMD Athlon 64 X2 (BE2300) cpu, which is a dual core cpu running at 1.9 GHz. When transcoding for my xbox 360 one core is running at 100% and the other core is idle (resulting in overall CPU load at 50%). Sometimes, especially on HD content, the playback stutters and rebuffers quite often.

Is there any way or making wmsmpeg.exe use both cores, or any other encoder that I can use which is more efficient on multi-core cpu's? I imagine that if both cores were used it might be enough so the rebuffering problem goes away.
WmsMpeg (FFMPEG) is not supported multithread for WMV. You can use the profile transcoding "Movies-DirectShow - WMV", probably somewhere in the system is activated multithread for WMVideo9 Encoder.
copson
Posts: 11
Joined: Sat Apr 10, 2010 6:26 pm

Re: Only one core used by wmsmpeg when transcoding

Post by copson »

Hi Eugene,
I have a similar problem but my encoding is to a Samsung TV (B650) which uses MPEGTS and still only seem to use one core. Encoding from 1920x1080 mkv to 1280x720 then only gets a fps lower than 24 using only one of my 2.4GHz cores, which make the stream unwatchable due to buffering and I have to pre-transcode them to be watchable.

Is there some setting of the FFMPEG (or any other codec that might work) I can use for the Samsung that actually use more than one core to improve the performance?
Eugene
Posts: 2940
Joined: Tue Nov 17, 2009 8:05 pm

Re: Only one core used by wmsmpeg when transcoding

Post by Eugene »

Hi,
copson wrote: I have a similar problem but my encoding is to a Samsung TV (B650) which uses MPEGTS and still only seem to use one core. Encoding from 1920x1080 mkv to 1280x720 then only gets a fps lower than 24 using only one of my 2.4GHz cores, which make the stream unwatchable due to buffering and I have to pre-transcode them to be watchable.

Is there some setting of the FFMPEG (or any other codec that might work) I can use for the Samsung that actually use more than one core to improve the performance?
If the video encoding is supported by the TV, you can use the transcoding profile "Movies - TsMuxer", which does not change the video, so fast.
copson
Posts: 11
Joined: Sat Apr 10, 2010 6:26 pm

Re: Only one core used by wmsmpeg when transcoding

Post by copson »

Thanks for the tip! I tried the "Movied - TsMuxer" profile but it was jerky, like it was slowing up and down. Sound seem to be in sync though but not really watchable due to the non-smooth playback.

Tried a few other transcoding settings and the CoreAVC codec just seems to manage to keep it up to speed so I ended up using that. It also seems to use multiple threads as both wmsmpeg.exe and wms.exe seems to be high on the cpu when using this profile.

There was another TsMuxer setting I tried that did not work though, the Movies - DirectShow - TsMuxer which gave the error "Error (code : 80004002) - No such interface supported". Would it be possible to register something to get this to work?
Eugene
Posts: 2940
Joined: Tue Nov 17, 2009 8:05 pm

Re: Only one core used by wmsmpeg when transcoding

Post by Eugene »

copson wrote:Thanks for the tip! I tried the "Movied - TsMuxer" profile but it was jerky, like it was slowing up and down. Sound seem to be in sync though but not really watchable due to the non-smooth playback.
If you use a WiFi connection, then the problem is this.
copson wrote: There was another TsMuxer setting I tried that did not work though, the Movies - DirectShow - TsMuxer which gave the error "Error (code : 80004002) - No such interface supported". Would it be possible to register something to get this to work?
Settings-Transcoder-Profiles-"Movies - DirectShow - TsMuxer"-Edit: you can go step by step execution, may not have any codecs (Haali, FFDShow)
Merlin
Posts: 2
Joined: Mon Feb 15, 2010 1:14 pm

Re: Only one core used by wmsmpeg when transcoding

Post by Merlin »

Hello Eugen,
There is a way that FFMPEG uses more cores.
use the commandline option "-threads <no of cores>"
Is there a way to add this commandline option at the configuration? or at the encoding Profile?

greets,
Martin
Eugene
Posts: 2940
Joined: Tue Nov 17, 2009 8:05 pm

Re: Only one core used by wmsmpeg when transcoding

Post by Eugene »

Hello,
Merlin wrote: There is a way that FFMPEG uses more cores.
use the commandline option "-threads <no of cores>"
Is there a way to add this commandline option at the configuration? or at the encoding Profile?
The program adds this parameter according to the configuration, but FFMPEG does not support it for WMV.
You can check: Settings - Transcoder - Profiles - "Movies (additional)" - Edit

Code: Select all

function GetMultiThreadSupported(const aVideoCodec: string): Boolean;
begin
{  if SameText(aVideoCodec, 'WMV') then
    Result := False
  else}
    Result := True
end;
tuliolazarini
Posts: 17
Joined: Sat Apr 16, 2011 12:19 am

Re: Only one core used by wmsmpeg when transcoding

Post by tuliolazarini »

Hi Eugene, hi everyone,

I'm using WMS 1.09.1 on a Core 2 Quad Q6600 running Windows Vista, and my client player is a Sony KDL-40EX405 TV. Every time WMS start transcoding, a console window opens and I watch how many FPS are being generated. Sometimes, when I'm watching 1080p MKV movies, FPS are lower than 25fps, and the movie stutters. My default workaround is to pause the movie on TV, wait 15-30 minutes to 'buffer' some transcoded video, and then come back to watch it.

Ok, it works great! But it's a little bit boring waiting movie to buffer... I have 'number of threads transcoding' configured to '4', but wmsmpeg never uses more than 30%-35% CPU. Am I doing something wrong? Is there a way to get wmsmpeg running at higher CPU usage when converting MKV movie to my Sony TV? Are there any restrictions about multithreading in this case?

Thanks in advance, and congrats, Wild Media Server rocks!
Eugene
Posts: 2940
Joined: Tue Nov 17, 2009 8:05 pm

Re: Only one core used by wmsmpeg when transcoding

Post by Eugene »

Hi,
tuliolazarini wrote: I'm using WMS 1.09.1 on a Core 2 Quad Q6600 running Windows Vista, and my client player is a Sony KDL-40EX405 TV. Every time WMS start transcoding, a console window opens and I watch how many FPS are being generated. Sometimes, when I'm watching 1080p MKV movies, FPS are lower than 25fps, and the movie stutters. My default workaround is to pause the movie on TV, wait 15-30 minutes to 'buffer' some transcoded video, and then come back to watch it.

Ok, it works great! But it's a little bit boring waiting movie to buffer... I have 'number of threads transcoding' configured to '4', but wmsmpeg never uses more than 30%-35% CPU. Am I doing something wrong? Is there a way to get wmsmpeg running at higher CPU usage when converting MKV movie to my Sony TV? Are there any restrictions about multithreading in this case?
Try use the transcoding profile "Movies - CoreAVC" (select a file - right click - Transcoding profile - "Movies - CoreAVC")
FFDShow codec maybe required
Post Reply