Skip to main content

Youtube and other video issues in Chrome | Ubuntu

The videos, flash plugins and other high graphic stuff may stop working in Google Chrome.

Symptoms
Videos won't play properly
VLC may misbehave
Audio and Video decoding may not be in sync

Cause
GPU Hardware acceleration is failing. The GPU acceleration is required by many applications like Chrome, VLC, etc.

Workaround
Go to Advanced Settings of Google Chrome and deselect "Use hardware acceleration when available". Be cautious, by doing this - some other graphics also may stop working.

Solutions

  1. Reset the Chrome settings
  2. Clear Cookies and Cache
  3. Ensure that the Java Script is enabled in Chrome
  4. Go to chrome://plugins and ensure that the Adobe Flash Player is enabled
  5. If this doesn't work, try a re-installation of Google Chrome
  6. Check that you have VDPAU library installed VDPAU is an open-source library and API allows to video programs to offload portions of the video decoding process and video post-processing to the GPU video-hardware. 
           $ dpkg -l | grep vdpau

           Install it if not available

                   $ sudo add-apt-repository ppa:nilarimogard/webupd8
                   $ sudo apt-get update
                   $ sudo apt-get install libvdpau-va-gl1

 If it's installed, better upgrade it because you have probably upgraded the kernel and so many other packages and you are using it. This may cause problem in communicating with the VDPAU library properly.

Try opening YouTube in chrome. Follow the below steps if it's not working.

$ sudo mkdir -p /etc/adobe
$ echo "EnableLinuxHWVideoDecode=1" | sudo tee /etc/adobe/mms.cfg
$ echo "OverrideGPUValidation=1" | sudo tee -a /etc/adobe/mms.cfg

To enable the driver for system-wide (not recommended):

$ sudo sed -i "s/^# \[/\[/g" /etc/X11/Xsession.d/20vdpau-va-gl
$ sudo sed -i "s/^# export/ export/g" /etc/X11/Xsession.d/20vdpau-va-gl

Comments

Popular posts from this blog

Check remote UDP connectivity from Linux

Hi there, You all know how to check TCP port connectivity from a Linux or UNIX machine to a remote machine using telnet as per th example below $ telnet 127.0.0.1 25 but we can't adopt TELNET to check UDP connectivity. Linux and most of the UNIXes come with a network layer utility called nc (abbreviation for netcat) which is very useful to check UDP connectivity and to explore a lot with both TCP and UDP. An example is shown below # nc -v -u -z -w 3 172.24.16.131 123 Connection to 172.24.16.131 123 port [udp/ntp] succeeded!

The best putty package available

Bored of Black screened Task bar filling putty? Issues with porting Saved sessions from machine to machine? Do you like tabbed SSH sessions? Start using portaputty instead of normal putty and link it with puttycm . Puttycm supports sessions to be saved in its own Database files. You can use the Putty sessions you have saved already right inside putty. You can have any number of databases which allow you to arrange Remote servers in folders and convenient namings. I personally recommend creating Database with puttycm rather than using the sessions saved in putty which doesn't offer any option to create folders and saving sessions under that directory tree. You can even save username/password to get it logged automatically and there is an option to pass commands to be run soon after login. I can't recommend this since some bug was found with these options. Portaputty is a variant of putty which stores all the Configuration data in text files instead of MS Window

PING.sh

#!/usr/bin/env bash ## Ping all machines in a Network PING="$(which ping) -c 1 -W 1" echo "Enter Subnet(eg:192.168.0)" read Subnet echo "Do you want to PING the entire network or a RANGE of IPs ? Enter your choice" echo 1. Ping Entire Network echo 2. Ping a RANGE read choice if [ $choice = 1 ]; then { echo Pinging..... for((i=1;i<255;i++)); do ${PING} ${Subnet}.${i} > /dev/null 2> /dev/null if [ $? -eq 0 ]; then echo -e "${Subnet}.${i} is up" fi done } fi if [ $choice = 2 ]; then { echo Enter the Starting IP of Range read a echo Enter the Last IP of Range read b echo Pinging..... for((i=$a;i<$b;i++)); do ${PING} ${Subnet}.${i} > /dev/null 2> /dev/null if [ $? -eq 0 ]; then echo -e "${Subnet}.${i} is up" fi done } fi exit 0