web-dev-qa-db-ja.com

Windows Media Playerでサポートされているビデオコーデックにトランスコードするようにffmpegに指示するにはどうすればよいですか?

以下のコマンドはエラーなしで実行されました。

ffmpeg -i thevideo.mkv outvideo.avi

その後、Windows Media Playerでoutvideo.aviを再生しようとすると、このエラーが発生しました。

You may need an additional video decoder to play this file.

This file contains a track in an unknown format (code "ARGB") format. You may need to     
install a DirectShow decoder for this video format in order to play this file.

Windows Media Playerによって提供されるエラーの詳細は、ビデオを再生するためにmpg2コーデックが必要であることを示しています。 Windows Media Playerでサポートされているビデオコーデックにトランスコードするようにffmpegに指示するにはどうすればよいですか?

6
Everyone

ffmpeg自体は、システムにインストールされており、Windows Media Playerからアクセスできるコーデックを認識していないため、できません。これは、ffmpegが独自のlibavcodecおよびlibavformatライブラリを使用してエンコードおよびデコードするためです。したがって、ffmpegによって生成されたビデオは、必ずしもWindows MediaPlayerで再生される必要はありません。


解決策1:追加のコーデックをインストールする

このファイルを再生するには、このビデオ形式のDirectShowデコーダーをインストールする必要がある場合があります。

Windowsにはすべての可能なコーデックが付属しているわけではないため、これは最終的に行う必要があることです。実際、7までのWindowsバージョンは、追加のコーデックがほとんどない状態で出荷されるため、ユーザーは K-Lite または [〜#〜] cccp [〜#)のようなコーデックパックをインストールする必要があります。 〜] 。ただし、すべてのPCにそれらがインストールされているとは限りません。また、独自のコーデックを提供し、Windowsに依存しないVLCなどのメディアプレーヤーを使用してビデオを出荷することをお勧めします。

ただし、追加のマルチメディアコーデックをインストールすることは、すべての新しいWindowsマシンでおそらく実行する必要があります。


解決策2:コーデックに変換するWMPが再生する

Windows Media Playerがサポートするマルチメディアファイルタイプに関する情報 によると、ネイティブにサポートされている形式がいくつかありますが、それらはそれほど具体的ではありません。安全を確保したい場合は、おそらくWindows Media Video(wmv)に変換する必要があります。他のすべてについては、まあ、これがマイクロソフトの言うことです:

さまざまなコーデックで圧縮されたオーディオコンテンツまたはビデオコンテンツは、.aviファイルに保存して、Windows Media Playerで再生できます適切なコーデックがコンピューターにインストールされている場合。 .aviファイルで頻繁に使用されるビデオコーデックには、次のコーデックが含まれます[...]

ffmpegのFAQ はもう少し具体的です。彼らが言う:

Windowsでサポートされているコーデックはどれですか?

次のビデオコーデックのリストは、ほとんどのWindowsシステムで機能するはずです。

  • msmpeg4v2 、. avi/.asf
  • msmpeg4 、. asfのみ
  • wmv1 、. asfのみ
  • wmv2.asfのみ
  • mpeg4、ffdshowやXvidなどのコーデックがインストールされている場合のみMPEG-4。
  • mpeg1video 、. mpgのみ

Windowsでは、ASFファイルの拡張子が.wmvまたは.wmaであることがよくあります。また、MicrosoftはASF形式の特許を主張しており、Microsoft以外のソフトウェアでASFファイルを作成するユーザーを訴えたり脅したりする可能性があることにも言及しておく必要があります。可能な限りASFを回避することを強くお勧めします。

次のオーディオコーデックのリストは、ほとんどのWindowsシステムで機能するはずです。

  • adpcm_ima_wav
  • adpcm_ms
  • pcm_s16le、常に
  • libmp3lame、LAMEなどのMP3コーデックがインストールされている場合。

したがって、変換するときに、ビデオとオーディオにそれぞれ-vcodecオプションと-acodecオプションを使用して、使用するコーデックを指定できます。

例えば:

ffmpeg -i input.mp4 -vcodec msmpeg4v2 -acodec pcm_s16le output.avi

Windowsでサポートされるオーディオコーデックがわからないため、これは非圧縮オーディオを使用していることに注意してください。運が良ければ、MP3を試して(ほとんどの新しいマシンで動作するはずです)、libmp3lameオプションを使用できます。

5
slhck

これを試して

C:\>ffmpeg -i yourvideofile.xyz -acodec mp2 -vcodec mpeg1video h.mpg

次に、出力ファイルh.mpgをWMPで再生すると、うまくいくと思います。

これは、MP2のオーディオコーデックとMPEG1のビデオコーデックを使用して、MPEGコンテナ形式に変換しています。

その組み合わせは、WMPでサポートされている必要があります。

これら3つのことを混同する理由はありません。また、mediainfoをダウンロードして、任意のビデオファイルからその種の情報を見つけることができます。 mediainfoのCLIバージョンは非常に明確です
http://mediainfo.sourceforge.net/en/Download/Windows

2
barlop