2008-09-17 14 views
2

필자는 잠시 동안 머리를 으깨고있었습니다. wmv3 코덱으로 인코딩 된 2 개의 완전히 동일한 .wmv 파일이 있습니다.왜 wmv에서 ffmpeg로 flv 로의 일부 변환이 실패합니까?

/usr/bin/ffmpeg -i file.wmv -ar 44100 -ab 64k -qscale 9 -s 512x384 -f flv file.flv 

하나의 파일이 잘 변환하고, 나에게 다음과 같은 출력을 제공합니다 : 나는 다음과 같은 명령으로는 FFmpeg을 통해 모두 넣어

FFmpeg version SVN-r11070, Copyright (c) 2000-2007 Fabrice Bellard, et al. 
    configuration: --prefix=/usr --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic --enable-liba52 --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libxvid --enable-libx264 --enable-pp --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-optimizations --disable-strip 
    libavutil version: 49.5.0 
    libavcodec version: 51.48.0 
    libavformat version: 51.19.0 
    built on Jun 25 2008 09:17:38, gcc: 4.1.2 20070925 (Red Hat 4.1.2-33) 
Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001) 
Input #0, asf, from 'ok.wmv': 
    Duration: 00:14:22.3, start: 3.000000, bitrate: 467 kb/s 
    Stream #0.0: Audio: wmav2, 44100 Hz, stereo, 64 kb/s 
    Stream #0.1: Video: wmv3, yuv420p, 320x240 [PAR 0:1 DAR 0:1], 400 kb/s, 29.97 tb(r) 
Output #0, flv, to 'ok.flv': 
    Stream #0.0: Video: flv, yuv420p, 512x384 [PAR 0:1 DAR 0:1], q=2-31, 200 kb/s, 29.97 tb(c) 
    Stream #0.1: Audio: libmp3lame, 44100 Hz, stereo, 64 kb/s 
Stream mapping: 
    Stream #0.1 -> #0.0 
    Stream #0.0 -> #0.1 
Press [q] to stop encoding 
frame=25846 fps=132 q=9.0 Lsize= 88486kB time=862.4 bitrate= 840.5kbits/s 
video:80827kB audio:6738kB global headers:0kB muxing overhead 1.050642% 

다른 파일 동안 실패 :

FFmpeg version SVN-r11070, Copyright (c) 2000-2007 Fabrice Bellard, et al. 
    configuration: --prefix=/usr --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic --enable-liba52 --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libxvid --enable-libx264 --enable-pp --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-optimizations --disable-strip 
    libavutil version: 49.5.0 
    libavcodec version: 51.48.0 
    libavformat version: 51.19.0 
    built on Jun 25 2008 09:17:38, gcc: 4.1.2 20070925 (Red Hat 4.1.2-33) 
[wmv3 @ 0x3700940d20]Extra data: 8 bits left, value: 0 

Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1) 
Input #0, asf, from 'bad3.wmv': 
    Duration: 00:06:34.9, start: 4.000000, bitrate: 1666 kb/s 
    Stream #0.0: Audio: 0x0162, 48000 Hz, stereo, 256 kb/s 
    Stream #0.1: Video: wmv3, yuv420p, 512x384 [PAR 0:1 DAR 0:1], 1395 kb/s, 25.00 tb(r) 
File 'ok.flv' already exists. Overwrite ? [y/N] y 
Output #0, flv, to 'ok.flv': 
    Stream #0.0: Video: flv, yuv420p, 512x384 [PAR 0:1 DAR 0:1], q=2-31, 200 kb/s, 25.00 tb(c) 
    Stream #0.1: Audio: libmp3lame, 48000 Hz, stereo, 64 kb/s 
Stream mapping: 
    Stream #0.1 -> #0.0 
    Stream #0.0 -> #0.1 
Unsupported codec (id=0) for input stream #0.0 

입력 오디오 코덱과의 유일한 차이점은

작동 :

Stream #0.0: Audio: wmav2, 44100 Hz, stereo, 64 kb/s 

작동하지 :

Stream #0.0: Audio: 0x0162, 48000 Hz, stereo, 64 kb/s 

어떤 아이디어?

답변

4

을 보통의 물건을 시도 문제를 일으키는 오디오 포맷. 오디오 형식은 TwoCC (여기서 0x0162)로 식별됩니다. 당신은 여기에 다른 TwoCCs를 찾아 볼 수 있습니다 : http://wiki.multimedia.cx/index.php?title=TwoCC 당신은 찾을 수 있습니다 :

0x0162 윈도우 미디어 오디오 전문 V9

에게이 코덱을 아직 지원되지 않습니다는 FFmpeg에 의해 내가 아는 한 mencoder. Google에서 "ffmpeg audio 0x0162"을 검색하고 직접 확인하실 수 있습니다.

2

물론 명백한 대답은 오디오가 두 번째 wmv 파일에서 다르게 인코딩되므로 완전히 동일하지 않습니다. 당신은 '나쁜'wmv에 대해 특정 오디오 코덱을 사용하도록 강요 할 수 있습니다. 아마도 올바른 코덱을 선택하는 데 문제가있을 것입니다. 그러나 'bad'wmv에는 ffmpeg에서 지원하지 않는 일종의 오디오 코덱이있을 가능성이 높습니다.

또한 사실이다 사용 mencoder, 대안 등 버그 수정에게

-1

을 포함하거나 수있는 개발 버전을 확인하여 최신 버전으로 업그레이드했는지 확인,