2014-09-19 81 views
1

当转换一个.wmv文件到.MP4我用这个命令:转换WMV到MP4得到黑色屏幕

EXEC(“FFMPEG -i file.wmv -vcodec MPEG4 -acodec libfaac -b 1200 -r 15 -s 320x240 -pix_fmt yuv420p file.mp4“);

声音很好,但我没有图像(使用HTML5不下载到PC时)。 这是输出:

FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers 
    built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6) 
    configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab 
    libavutil  50.15. 1/50.15. 1 
    libavcodec 52.72. 2/52.72. 2 
    libavformat 52.64. 2/52.64. 2 
    libavdevice 52. 2. 0/52. 2. 0 
    libavfilter 1.19. 0/1.19. 0 
    libswscale  0.11. 0/0.11. 0 
    libpostproc 51. 2. 0/51. 2. 0 
[wmv3 @ 0xc2daa0]Extra data: 8 bits left, value: 20 

Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 30.00 (30/1) 
Input #0, asf, from '/home/xxx/public_html/new/zawmju.wmv': 
    Metadata: 
    Application  : Windows Movie Maker 2.6.4037.0 
    WM/ParentalRating: 
    WMFSDKVersion : 12.0.9200.16384 
    WMFSDKNeeded : 0.0.0.0000 
    IsVBR   : 0 
    title   : 
    author   : SahlaTube 
    copyright  : 
    comment   : 
    Duration: 00:00:04.03, start: 2.000000, bitrate: 740 kb/s 
    Stream #0.0: Audio: wmav2, 44100 Hz, 2 channels, s16, 64 kb/s 
    Stream #0.1: Video: wmv3, yuv420p, 640x480, 30 tbr, 1k tbn, 1k tbc 
[wmv3 @ 0xc2daa0]Extra data: 8 bits left, value: 20 
Output #0, mp4, to '/home/xxx/public_html/new/zawmju.wmv.mp4': 
    Metadata: 
    encoder   : Lavf52.64.2 
    Stream #0.0: Video: mpeg4, yuv420p, 320x240, q=2-31, 1 kb/s, 15 tbn, 15 tbc 
    Stream #0.1: Audio: libfaac, 44100 Hz, 2 channels, s16, 64 kb/s 
Stream mapping: 
    Stream #0.1 -> #0.0 
    Stream #0.0 -> #0.1 
Press [q] to stop encoding 
frame= 61 fps= 0 q=24.8 Lsize=  82kB time=4.02 bitrate= 166.4kbits/s dup=0 drop=59  

video:55kB audio:24kB global headers:0kB muxing overhead 3.828952% 
+0

0.6.5是古老的。您确定您的浏览器/播放器/设备可以播放MPEG-4 Part 2视频吗? – LordNeckbeard 2014-09-19 02:04:52

回答

4

首先升级ffmpeg版本,然后将编码器更改为libx264(H.264视频),而不是mpeg4(MPEG-4第2部分视频):

ffmpeg -i file.wmv -vcodec libx264 -pix_fmt yuv420p -profile:v baseline \ 
-preset slow -crf 22 -movflags +faststart output.mp4 

如果需要,可以使用scale video filter来调整大小,例如-vf scale=320:-2

另见:

+0

I'am on shared hosting :( – HawkEye000 2014-09-19 07:51:35

+0

这是否意味着您无法升级ffmpeg? 然后,您必须了解您的旧版ffmpeg支持的格式,也可以通过html5进行流式传输。 – user2452253 2014-09-19 09:44:19

+0

@ HawkEye000您可能仍然可以简单地从[FFmpeg下载]页面(https://ffmpeg.org/download.html)下载一个ffmpeg版本,然后执行它,而不是你系统上安装的版本。 – LordNeckbeard 2014-09-19 14:43:16