0

我有一些从 JVC GC-FM1 高清摄像机以 720p 模式录制的 .mov 视频文件。我在 Linux 机器上运行 FFMPEG,我将文件上传到该机器以编码为 FLV 格式。视频似乎编码正常,但生成的 FLV 文件中没有音频。此外,当我在 Flash Player、浏览器或 Adob​​e Media Player 中播放时,视频会在开始时暂停。似乎 Adob​​e 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)

4

1 回答 1

1

似乎您的输出文件名是“uploads/video/60974_v1.jpg”尝试改为“uploads/video/60974_v1.flv”

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

于 2010-03-26T00:19:54.980 回答