Missing audio and problems playing FLV video converted from 720p .mov file with FFMPEG
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 for encoding into FLV format. The video appears to be encoding ok, but there is no audio in the resulting FLV file. Also, 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 were 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';
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, 20开发者_运维知识库0 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)
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
精彩评论