ffmpeg에게 Windows Media Player가 지원하는 비디오 코덱으로 코드 변환하도록 지시하려면 어떻게합니까?


6

아래 명령은 오류없이 실행되었습니다.

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 코덱이 필요함을 나타냅니다. ffmpeg에게 Windows Media Player가 지원하는 비디오 코덱으로 코드 변환하도록 지시하려면 어떻게합니까?


아마도 "비디오 형식"이 아닌 "코덱"을 의미했을 것입니다.
Ignacio Vazquez-Abrams

1
업데이트 됨 (+ : 사실 두 가지의 차이점에 대해 잘 모르겠으며 일반적
Everyone

답변:


5

ffmpeg자체적으로 시스템에 설치되어 있고 Windows Media Player에 액세스 할 수있는 코덱을 모르기 때문에 수행 할 수 없습니다 . 때문이다 ffmpeg자신의 사용 위해 libavcodeclibavformat 라이브러리 인코딩 및 디코딩 할 수 있습니다. 따라서에 의해 생성 된 비디오는 ffmpeg반드시 Windows Media Player에서 재생되지 않아야합니다.


해결 방법 1 : 추가 코덱 설치

이 파일을 재생하려면이 비디오 형식의 DirectShow 디코더를 설치해야 할 수도 있습니다.

Windows가 가능한 모든 코덱과 함께 제공되지 않기 때문에 이것이 궁극적으로해야 할 일입니다. 실제로 7까지 Windows 버전은 추가 코덱이 거의없이 제공되므로 K-Lite 또는 CCCP 와 같은 코덱 팩을 설치해야합니다 . 그러나 모든 PC에 해당 PC가 설치되어 있다고 가정 할 수는 없으며 비디오를 자체 코덱을 제공하고 Windows에 의존하지 않는 VLC와 같은 미디어 플레이어와 함께 제공하고자 할 수 있습니다

추가 멀티미디어 코덱을 설치하는 것은 모든 새로운 Windows 컴퓨터에서해야 할 일입니다.


해결 방법 2 : WMP 재생 코덱으로 변환

Windows Media Player가 지원하는 멀티미디어 파일 형식에 대한 정보에 따르면 기본적으로 지원되는 형식이 있지만 그 형식이 너무 구체적은 아닙니다. 안전을 유지하려면 Windows Media Video (wmv)로 변환해야합니다. 다른 모든 것에 대해서는 다음과 같이 Microsoft가 말합니다.

다양한 코덱으로 압축 된 오디오 콘텐츠 또는 비디오 콘텐츠 는 컴퓨터에 적절한 코덱이 설치된 경우 .avi 파일로 저장하고 Windows Media Player에서 재생할 수 있습니다 . .avi 파일에서 자주 사용되는 비디오 코덱은 다음 코덱을 포함합니다 ...]

ffmpeg의 FAQ 는 좀 더 구체적입니다. 그들은 말합니다 :

Windows는 어떤 코덱을 지원합니까?

다음 비디오 코덱 목록은 대부분의 Windows 시스템에서 작동합니다.

  • msmpeg4v2.avi / .asf
  • msmpeg4.asf 만
  • wmv1.asf 만
  • wmv2 .asf 만
  • mpeg4ffdshow 또는 Xvid와 같은 MPEG-4 코덱이 설치된 경우에만 해당됩니다.
  • mpeg1video.mpg 만

ASF 파일은 종종 Windows에서 .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옵션을 사용할 수 있습니다.


감사합니다 (+ : k-lites를 다운로드하고 확인하겠습니다. 우연히 DivX 플레이어를 설치
Everyone

지원되는 형식이 아닌 파일도 DivX에서 재생되지 않습니다. 작동하지 않으면 -vcodec msmpeg4v2AVI로 변환 할 때 옵션 사용을 고려할 수 있습니다 .
slhck


1
"ffmpeg 자체는 시스템에 설치되어 있고 Windows Media Player에 액세스 할 수있는 코덱을 모르기 때문에 수행 할 수 없습니다 ..."WMP에서 재생되는 파일로 변환 할 수 있습니다! 최소 코덱이있는 WMP의 경우로 변환하면됩니다. 당신은 그것을 원하지 않기로 선택했습니다.
barlop

@barlop 그래서 그것이 내가 가진 이유입니다. > 솔루션 2 : 코덱으로 변환하십시오. WMP plays , 맞습니까? :)
slhck

2

이 시도

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

그런 다음 WMP에서 출력 파일 h.mpg를 재생하십시오.

오디오 코덱이 MP2이고 비디오 코덱이 MPEG1 인 MPEG 컨테이너 형식으로 변환합니다.

이 조합은 WMP에서 지원해야합니다.

그 세 가지를 섞을 이유가 없습니다. 또한 mediainfo를 다운로드하여 모든 비디오 파일에서 해당 종류의 정보를 찾을 수 있습니다. mediainfo의 CLI 버전은 매우 분명합니다.
http://mediainfo.sourceforge.net/en/Download/Windows


MPEG1은 비디오를 변환하는 데 매우 나쁜 선택입니다 (절대적으로 필요한 경우 제외). MPEG-1은 1988 년에 개발되어 1993 년에 출시되었습니다.
slhck

@slhck WMP에서 자연스럽게 작동해야 호환성이 뛰어납니다. 파일이 너무 크면 코덱을 설치하면 mp4 또는 다른 것이 될 수 있습니다. 그러나 호환성을 위해서는 재생 만하면됩니다. 거기에서 파일 크기를 줄이기 위해 다른 변환 옵션을 시도하거나 해당 단계를 건너 뛰고 다른 옵션을 시도 할 수도 있습니다. 그러나 그것은 적어도 희망적으로 연주하게합니다.
barlop

그렇습니다. 물론 호환되는 관점에서!
slhck

호기심으로 p4 1.7 상자와 최신 i5-760 상자 모두에 제공 한 옵션으로 명령을 실행했습니다. 당연히 후자가 더 빨리 실행되었습니다 (i5의 fps 29와 비교하여 p4의 fps 7). 4 개의 코어에도 불구하고 1 개의 코어 만 작업 관리자 성능에서 많은 활동을 보여주었습니다. 나머지는 초기 폭동 후 유휴 상태였습니다. 이것은 나를 놀라게 했으므로 여기에 결과를 게시 할 것이라고 생각했습니다 (+ :
Everyone
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.