Search code examples
videoffmpegmp4codecwmv

FFMPEG and MSA1 Codec Issues when Converting WMV to MP4 Video


I have a WMV video file (around 60 MB size, 01:23:00 length) and I'm running a Windows Server 2016 64-bit machine for testing.
As far as I know, this video file was recorded using Microsoft Live Meeting 2007 back in April 2010 and there is also an associated audio file (which I'm able to play).

I tried to play the video file on my machine using VLC player (latest update), however, I always see this weird MSA1 codec error:

enter image description here

So I tried to resolve this problem by downloading and installing the Combined-Community-Codec-Pack-64bit-2015-10-18, and using its MPC-HC 64-bit player to play the video... I still couldn't get it to play! Here are the logs shown by the MPC player:

enter image description here

WM ASF Reader::Raw Video 0

Media Type 0:
--------------------------
Video: MSA1 1440x900 5fps 164kbps

AM_MEDIA_TYPE: 
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {3141534D-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo {05589F80-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 0
cbFormat: 88

VIDEOINFOHEADER:
rcSource: (0,0)-(1440,900)
rcTarget: (0,0)-(1440,900)
dwBitRate: 164794
dwBitErrorRate: 0
AvgTimePerFrame: 2000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 1440
biHeight: 900
biPlanes: 1
biBitCount: 16
biCompression: MSA1
biSizeImage: 66101
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 a0 05 00 00 84 03 00 00 ........ ...„...
0010: 00 00 00 00 00 00 00 00 a0 05 00 00 84 03 00 00 ........ ...„...
0020: ba 83 02 00 00 00 00 00 80 84 1e 00 00 00 00 00 ºƒ......€„......
0030: 28 00 00 00 a0 05 00 00 84 03 00 00 01 00 10 00 (... ...„.......
0040: 4d 53 41 31 35 02 01 00 00 00 00 00 00 00 00 00 MSA15...........
0050: 00 00 00 00 00 00 00 00                         ........

Since that didn't work, I tried installing the Microsoft MPEG-4 V1/2/3 VKI Codec for ASF files and still couldn't get the players to play the video and saw the same errors as above!

As a final attempt, I tried to convert this video to MP4 format using FFMPEG (version from 2020). Even this failed. Here are the logs:

D:\ffmpeg-20200403-52523b6-win64-static\bin>ffmpeg.exe -i input-video.wmv -c:v copy -c:a aac -q:a 100 output.mp4
ffmpeg version git-2020-04-03-52523b6 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.1 (GCC) 20200328
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 42.102 / 56. 42.102
  libavcodec     58. 77.101 / 58. 77.101
  libavformat    58. 42.100 / 58. 42.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 77.101 /  7. 77.101
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
[msa1 @ 000002505bb847c0] Image dimensions should be a multiple of 16.
[asf @ 000002505bb4b600] Failed to open codec in avformat_find_stream_info
[msa1 @ 000002505bb847c0] Image dimensions should be a multiple of 16.
Input #0, asf, from 'input-video.wmv':
  Metadata:
    WMFSDKNeeded    : 0.0.0.0000
    WMFSDKVersion   : 10.00.00.4072
    IsVBR           : 0
  Duration: 01:22:49.28, start: 0.000000, bitrate: 96 kb/s
    Stream #0:0(ger): Video: msa1 (MSA1 / 0x3141534D), none, 1440x900, 164 kb/s, 5 tbr, 1k tbn, 1k tbc
[mp4 @ 000002505bb4ce40] Could not find tag for codec msa1 in stream #0, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
    Last message repeated 1 times

D:\ffmpeg-20200403-52523b6-win64-static\bin>

I wish to know, is there any other way I can convert this video to a more modern format so that I can play it on a modern machine and modern video player?
What other codecs am I missing here? (if so, where can I get them?)
FYI, as mentioned earlier at the top, I'm only able to play the associated audio file...

I'm fairly new to all this stuff, so any help is appreciated.

Thanks in advance! :)


Solution

  • So, answering my own question after lots of research...
    I downloaded a Windows XP 64-bit SP2 ISO (and created a virtual machine), installed .NET 3.5 framework on it, and followed user @gmishra 's answer here:
    msa1 codec problems

    Then downloaded and installed the tool Recording Converter for Microsoft Office Live Meeting 2007 through Win XP (using a Firefox browser). Next, I downloaded the right codec DLL (MSA1) and register it in my machine, i.e. quoting from the user's answer:
    "Download the scdec.dll from here https://samples.ffmpeg.org/drivers32/newcodecpack/
    Register the dll manually using by running the command from a elevated command prompt =>
    regsvr32 scdec.dll"

    Finally I was able to play the video and eventually using the Recording tool, I was able to convert the whole meeting to a playable video file with audio! :)