views:

274

answers:

1

I have some .mov video files recorded from a JVC GC-FM1 HD video camera in 720p mode. I have FFMPEG running on a Linux box that I upload files to and have them encoded into FLV format. The video appears to be encoding ok but there is no audio in the resulting FLV file and when I play it back in Flash Player in a browser or on Adobe Media Player, the video pauses at the start. It appears that Adobe Media Player waits for the progress bar to reach the end of the video before starting the playback - i.e. the video will load, the picture pauses, the progress bar seeks to the end as if the video was playing then when it reaches the end the video picture starts. There is no audio on the video. I am noticing this in the video player I have built with Flash 8 using an FLVPlayback component and attached seekBar. The seek bar will start moving as if the video is playing but the picture remains paused.

Here are some outputs from my FFMPEG log and the command I am using to encode the video - my FFMPEG command called from PHP -

$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';

and here is the output from my error log -

    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%

Which are the important errors here -

B picture before any references, skipping? decode_slice_header error? no frame? or Seems stream 0 codec frame rate differs from container frame rate: 119.88 (120000/1001) -> 59.94 (60000/1001)

Any advice welcome, thanks

A: 

Seems your output filename is "uploads/video/60974_v1.jpg" Try instead "uploads/video/60974_v1.flv"

your -acodec libfaac probably should be --enable-libfaac but since in configuration: it is already there, skip specifying the libfaac. Remove the "-acodec libfaac" entirely

Jacek Glinkowski