使用FFMPEG播放从720p .mov文件转换的FLV视频时缺少音频和问题

时间:2010-02-19 12:29:19

标签: ffmpeg flv video-encoding transcoding .mov

我有一些从720p模式的JVC GC-FM1高清摄像机录制的.mov视频文件。我在一个Linux机器上运行FFMPEG,我上传文件以编码为FLV格式。视频似乎编码正常,但生成的FLV文件中没有音频。此外,当我在Flash Player,浏览器或Adobe Media Player中播放时,视频会在开始时暂停。似乎Adobe Media Player在开始播放之前等待进度条到达视频的末尾 - 即视频将加载,图片暂停,进度条寻找结束,就像视频正在播放一样,然后当它播放时到达视频图片开始的末尾。视频上没有音频。我在使用FLVPlayback组件和附加的seekBar使用Flash 8构建的视频播放器中注意到了这一点。搜索栏将开始移动,就像视频正在播放但图片仍然暂停一样。

以下是我的FFMPEG日志中的一些输出以及我用来编码视频的命令。

从PHP调用我的FFMPEG命令:

$cmd = 'ffmpeg -i ' . $sourcelocation.$filename.".".$fileext . '  -ab 96k -b 700k \
-ar 44100 -s ' . $target['width'] . 'x' . $target['height'] . ' -ac 1 \
-acodec libfaac ' . $destlocation.$filename.$ext_trans .' 2>&1';

我的错误日志输出:

FFmpeg version UNKNOWN, Copyright (c) 2000-2010 Fabrice Bellard, et al.
built on Jan 22 2010 11:31:03 with gcc 4.1.2 20070925 (Red Hat 4.1.2-33)
configuration: --prefix=/usr --enable-static --enable-shared --enable-gpl \
--enable-nonfree --enable-postproc --enable-avfilter --enable-avfilter-lavf \
--enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm \
--enable-libmp3lame --enable-libvorbis --enable-libx264
libavutil     50. 7. 0 / 50. 7. 0
libavcodec    52.48. 0 / 52.48. 0
libavformat   52.47. 0 / 52.47. 0
libavdevice   52. 2. 0 / 52. 2. 0
libavfilter    1.17. 0 /  1.17. 0
libswscale     0. 9. 0 /  0. 9. 0
libpostproc   51. 2. 0 / 51. 2. 0

Seems stream 0 codec frame rate differs from container frame rate: 119.88 (120000/1001) -> 59.94 (60000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'uploads/video/60974_v1.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    comment         : JVC GC-FM1
    comment-eng     : JVC GC-FM1
  Duration: 00:00:30.41, start: 0.000000, bitrate: 4158 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 4017 kb/s, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 128 kb/s
Output #0, rawvideo, to 'uploads/video/60974_v1.jpg':
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 320x240 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 59.94 tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
[h264 @ 0x8e67930]B picture before any references, skipping
[h264 @ 0x8e67930]decode_slice_header error
[h264 @ 0x8e67930]no frame!
Error while decoding stream #0.0
[h264 @ 0x8e67930]B picture before any references, skipping
[h264 @ 0x8e67930]decode_slice_header error
[h264 @ 0x8e67930]no frame!
Error while decoding stream #0.0
frame=    1 fps=  0 q=3.8 Lsize=      15kB time=0.02 bitrate=7271.4kbits/s dup=482 drop=0    
video:15kB audio:0kB global headers:0kB muxing overhead 0.000000%

这里有哪些重要错误?

B图片在任何引用之前,跳过? decode_slice_header错误? 没有框架? 要么 似乎流0编解码器帧速率与容器帧速率不同:119.88(120000/1001) - > 59.94(60000/1001)

1 个答案:

答案 0 :(得分:1)

似乎你的输出文件名是 “上传/视频/ 60974_v1.jpg” 试试吧 “上载/视频/ 60974_v1.flv”

您 -acodec libfaac 可能应该是 --enable-libfaac 但是因为在配置中:它已经存在,跳过指定libfaac。 完全删除“-acodec libfaac”