How to play a G2M4 encoded .wmv file (Ubuntu)?

7,725

Solution 1

ffmpeg supports decoding of the G2M4 format. Why not try encoding your file to another format such as mpeg-4? Maybe:

ffmpeg -i input.wmv -c:v libx264 -crf 23 -c:a ac3 -q:a 100 output.mp4

like explained in this Q&A. I have converted the g2m4.wmv sample file here successfully. Make sure you have a recent version of ffmpeg(2.2.4 in my case). You can always try a precompiled version so you don't need to compile anything nor modify your package sources. Depending on the options chosen for encoding, this may require extra packages such as libavcodec-extra-53. In that respect you should keep track of the default packages available for your version of the distribution. You can see that vlc 2.1.4 is in 14.04 only and that both 13.04 and 13.10 have version 2.0.8.

You should note that Ubuntu's release model is not that of a rolling release so you shouldn't expect cutting edge software with older versions. Looking up the aforementioned website will let you know in advance what to expect. Otherwise as others have explained you can also resort to compiling VLC or adding a repository to use a more recent version(2.1.4 plays the G2M4 sample on my system).

Finally, you could try avconv(many examples provided) from the libav-tools package which is maybe favored by Ubuntu. It works in a very similar fashion to ffmpeg so I would try with the same options and debug from there. If you have one file it makes no sense to reinstall a distribution to try to play it.

Solution 2

See this news: VLC for Mac gets 4K support, dozens of new features including G2M4 playback which states that version 2.1 of vlc supports the G24M codec ⇒ Update your vlc.

You could just install the latest VLC 2.1.0 in Ubuntu 13.04 and Ubuntu 13.10. Just follow the instructions in the linked tutorial. Or you could also upgrade your distribution, which will bring you newer versions of all your applications (but takes much more time).

A short outtake from the tutorial

Compile it from source or use a PPA.

Option 1: Compiling

Download and extract the application. Before getting to the compiling part, you should first download the dependencies. This is fairly simple and it’s done with a single command:

sudo apt-get build-dep vlc

This will take some time. After that navigate to the VLC source folder and enter the following commands:

./configure
make
sudo make install

Option 2: Use a PPA

The other solution is a lot simpler. You will have to add a PPA to your system and install the software from there. Just open a terminal and enter the following command:

sudo add-apt-repository ppa:videolan/stable-daily
sudo apt-get update
sudo apt-get install vlc

If you have an older version of VLC already installed, just replace the last command with sudo apt-get dist-upgrade.

Share:
7,725

Related videos on Youtube

Godson
Author by

Godson

Updated on September 18, 2022

Comments

  • Godson
    Godson over 1 year

    I was using Ubuntu 13.04 (end of life) - now using 13.10. I have this .wmv video file. When I try to play it on vlc, it shows the error below, there is no video but the audio is working properly:

    No suitable decoder module:
    VLC does not support the audio or video format "G2M4".
    Unfortunately there is no way for you to fix this.
    

    Do I need to install any codec? How can I play this file?


    When I run it with totem movie player, I get:

    Required plugin could not be found
    
    Videos requires to install plugins to play media files of the following
    type: video/x-asf-unknown decoder
    

    EDIT#1

    This edit is after trying the answers given.

    1) I installed mplayer. When I ran the video file it was processing something which would have taken a long time to complete. Please see the screen shot below(look at the last line). enter image description here

    2) Then I installed smplayer (GUI). When I tried running the .wmv file, only audio came but not video (as with the case of vlc).

    3) I tried upgrading my vlc version from the current version 2.0.8 to a higher one. I googled & tried different ways but to no avail. Then I removed it & reinstalled it.

    1) sudo apt-get purge vlc
    
    2) sudo apt-get autoremove
    
    3) sudo apt-get install vlc
    

    After doing all this, still the version of the vlc was the same 2.0.8! Why so? Is it because Ubuntu 13.04 isn't supported any more? So from Ubuntu repository, only that version can be installed? Is it that for installing latest or further versions I need to get it from website? Now also the video of the .wmv file didn't run.

    4) `ubuntu-restricted-extras` are already installed.
    

    I would like to repeat that I'm working on Ubuntu 13.04 which is not supported since last 5 months. This may be the issue.

    I'm preparing my laptop now for upgrading to newer versions of Ubuntu. Once I install the new OS, I will check whether the video file runs there!

    EDIT#2

    I've installed Ubuntu13.10 on my laptop now & removed the older unsupported one (Ubuntu 13.04). Now I tried to run the video but failed.

    1) 1st I write with respect to what Seth has written. I ran sudo apt-get install ubuntu-restricted-extras but still the video part isn't running.

    2) Now I write with respect to what Erik wrote in his answer.

    After installing Ubuntu13.10, I installed vlc player via sudo apt-get install vlc. The version of VLC was 2.0.8. (Erik, one thing to be noted. This is the same version as with ubuntu13.04.) To upgrade to 2.1.0., I ran the 3 commands (using ppa). I found the version now to be VLC media player 2.0.10 Twoflower (revision 2.0.8+git20140326+r49189+13+8~ubuntu13.10.1) & not 2.1.0. With this version, the .wmv file couldn't run the video part as earlier. Only audio is running as was earlier. Here the screen shot is the same as the 1st image in this Q. So, using PPA, I couldn't upgrade to 2.1.0.

    So, it's working the same way as with previous O.S. Only audio is functioning but not video.

    EDIT#3

    This edit is with reference to the answer posted by @erik

    I'm able to compile vlc from source (option 1 as mentioned in his answer) but still the video part couldn't be played, only the audio is working as earlier.

    sudo apt-get build-dep vlc
    ./configure
    make
    sudo make install
    

    I didn't find any error in running the above commands.

    Now in this version ( 2.1.0. ) also, only audio is working and not video. So, is it that G2M4 support is there in vlc version 2.1.4 (which is in ubuntu 14.04) but not in 2.1.0.?

    EDIT#4

    As per illuminE's answer, I'm writing the output of the ffmpeg command below. I installed ffmpeg version 0.10 via ppa as available in one of his link. But still the command failed. I feel this version can't convert the G2M4 encoded .wmv file. I'm searching for another PPA or something else to install latest version.

    ravi@ravi-Aspire-5315:~$ ffmpeg -i '/home/ravi/2014-04-12_11.39_Equity_Markets-I.wmv'  -c:v libx264 -crf 23 -c:a ac3 -q:a 100 output.mp4
    ffmpeg version 0.10.12-7:0.10.12-1~saucy1 Copyright (c) 2000-2014 the FFmpeg developers
      built on Apr 26 2014 10:04:40 with gcc 4.8.1
      configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu --enable-shared --disable-static
      avutil      configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
      avcodec     configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
      avformat    configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
      avdevice    configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
      avfilter    configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
      swscale     configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
      swresample  configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
      postproc    configuration: --arch=i386 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/i386-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc
      libavutil      51. 35.100 / 51. 35.100
      libavcodec     53. 61.100 / 53. 61.100
      libavformat    53. 32.100 / 53. 32.100
      libavdevice    53.  4.100 / 53.  4.100
      libavfilter     2. 61.100 /  2. 61.100
      libswscale      2.  1.100 /  2.  1.100
      libswresample   0.  6.100 /  0.  6.100
      libpostproc    52.  0.100 / 52.  0.100
    [asf @ 0x9396ac0] max_analyze_duration 5000000 reached at 5194000
    [asf @ 0x9396ac0] decoding for stream 1 failed
    [asf @ 0x9396ac0] decoding for stream 2 failed
    [asf @ 0x9396ac0] Could not find codec parameters (Video: g2m (G2M4 / 0x344D3247), 1920x1080, 97 kb/s)
    Input #0, asf, from '/home/ravi/2014-04-12_11.39_Equity_Markets-I.wmv':
      Metadata:
        WMFSDKVersion   : 12.0.9600.16384
        WMFSDKNeeded    : 0.0.0.0000
        IsVBR           : 1
        WM/ToolVersion  : 6.2.1 Build 1350
        WM/ToolName     : 㙉䜴呯䵯敥楴杮
        BitRateFrom the writer: 145
        Audio samples   : 612
        Video samples   : 393
        recording time  : Sat, 12 Apr 2014 13:26:37 India Standard Time
      Duration: 01:42:11.56, start: 0.000000, bitrate: 149 kb/s
        Stream #0:0: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 1 channels, s16, 48 kb/s
        Stream #0:1: Data: none
        Stream #0:2: Video: g2m (G2M4 / 0x344D3247), 1920x1080, 97 kb/s, 10 tbr, 1k tbn, 1k tbc
    Video pixel format is unknown, stream cannot be encoded
    
    • erik
      erik almost 10 years
      To answer your questions of your edit: Ubuntu 13.04 doesn’t seem to support/include newer versions of vlc. See this comment here: Nota Bene – Ubuntu includes whichever VLC version was the latest at the time the Ubuntu release was frozen. You have to upgrade you version of Ubuntu, like suggested in my answer. Or find a newer version of vlc for your Ubuntu version.
    • erik
      erik almost 10 years
      Instead of installing a new version of Ubuntu, you could just Install the Latest VLC 2.1.0 in Ubuntu 13.04 and Ubuntu 13.10. Just follow the instructions in the linked tutorial.
  • Godson
    Godson almost 10 years
    Please see my edit.
  • Godson
    Godson almost 10 years
    Please see EDIT#2. After running those commands, still the version wasn't 2.1.0 but 2.0.10
  • Godson
    Godson almost 10 years
    Yes the reason why the version was 2.0.10 & not 2.1.0 is that ppa reverted the version number.
  • Godson
    Godson almost 10 years
    I've compiled from source. Now the vlc in my system is 2.1.0. but still only audio is working but not video as earlier. Please see my EDIT#3
  • erik
    erik almost 10 years
    Sorry, I didn’t try it myself, as I am using Fedora which doesn’t have that problems, because Fedora uses bleeding edge software. Maybe somebody else can help. Write the author of the linked tutorial and upgrade your question or add a comment so that I can complete my answer. Thank you.
  • Godson
    Godson almost 10 years
    I used the link you sent. I added the ppa on my Ubuntu 13.10. Then I ran sudo apt-get update & then sudo apt-get install ffmpeg. Now the version of ffmpeg I've is: ffmpeg version 0.10.12-7:0.10.12-1~saucy1. As pet the ppa link, I should get version 0.10 which I got; so ffmpeg was installed properly via ppa. But still the command is showing error. Please see EDIT#4 for the error output. I feel the link you provided was not for the latest ffmpeg version; I need to check for another ppa.
  • Godson
    Godson almost 10 years
    Yes, I've successfully unzipped ffmpeg-2.3.tar.bz2. I've a folder named ffmpeg-2.3. Please guide further how to proceed to run ffmpeg. You wrote unzip & run. What's that "run" you wrote! There is no file (executable) under this folder having name ffmpeg.
  • Admin
    Admin almost 10 years
    @Ravi What I talked about is a precompiled version. Just extract and run to save time. The link I gave is the download link to ffmpeg.org. If you use a 32bit system click here, otherwise, click here. Extract. Type ./ffmpeg with appropriate options. "Run" simply means execute. Good luck!
  • Godson
    Godson almost 10 years
    Yes, Great! I've successfully installed ffmpeg. I've able to convert the .wmv file to .mp4 & it has successfully run on totem video player. But why the ffmpeg version is like this: ffmpeg version N-63893-gc69defd
  • Admin
    Admin almost 10 years
    @ravi It's just some "daily build" - that means it's basically the latest/very recent version but it's not made to be a release for distribution etc. Just some "on-the-fly" binary to use for one time operation like with your file. It's not optimized for your system. If you download from the same link again some other time later the version will change. What's important is that it's always recent.