Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any way to programmatically disable hardware accelerated h.264 video decoding in silverlight 5?

We are getting reports from our Mac users that some of their video is playing back garbled. This only started happening when Silverlight 5 was released. This release included hardware video decoding acceleration for H.264, which is the codec we use. We have found that disabling the hardware acceleration through the Silverlight Preferences solves the problem.

Does anyone know of a programmatic way of disabling the hardware acceleration? We have thousands of users on OS X, and would like to preemptively fix this issue for them. Other ways of solving the issue from our end would also be welcome.

Relevant details:

  • H.264 codec in MP4 container, sometimes with AAC audio
  • Video is hosted on Amazon S3 and fed through a CDN
  • Using the Silverlight MediaElement
  • I have tried turning off enableGPUAcceleration in the object params
  • I have tried turning off the CacheMode since it affects GPU acceleration as detailed on this page about Silverlight hardware acceleration.

Update

  • It doesn't happen consistently, which is making this problem harder to solve. Some videos will play OK, and others will not. All the videos are encoded the same way.
  • It happens in Google Chrome, Safari, and Firefox.
  • This is Mac OS X only, it doesn't happen at all in Windows.
  • It happens on several different models and revisions of Macs. Mac Mini, MacBook Air, MacBook Pro, etc. We haven't found a particular model that never has the issue so far.

Update 2

  • Reproduces with Silverlight 5.0 and 5.1

Update 3

  • This is in-browser (hence the browsers listed above)

Here is an example of the garbled video

silverlight 5 garbled video

The preferences setting that fixes the issue

silverlight preferences

like image 390
Bryce Kahle Avatar asked Aug 20 '12 15:08

Bryce Kahle


People also ask

How do I disable hardware-accelerated video decode?

Disable Hardware AccelerationOpen Chrome browser on the Chromebook and type chrome://flags in the URL address bar (Fig. 1). 1.2. On the Experiments page that appears, search for Hardware-accelerated video decode and then select Disabled from the dropdown menu to its right (Fig.

What does H 264 hardware acceleration do?

If you use the [Encoding mode] of Bandicut, you can use the hardware-accelerated H. 264 (NVIDIA, Intel, AMD) encoders which allow you to cut, trim, split, join and convert videos at a higher speed than the H.

What does hardware-accelerated video decode do?

Hardware video acceleration makes it possible for the video card to decode/encode video, thus offloading the CPU and saving power.


1 Answers

You mentioned several browsers, so I assume you're hosted on a page. See if this does it for you:

<param name="enableGPUAcceleration" value="false"/>

in the <object> tag on the HTML page hosting the plug-in.

like image 135
Pete Avatar answered Oct 12 '22 22:10

Pete