У меня есть несколько видеофайлов .mov, записанных с видеокамеры JVC GC-FM1 HD в режиме 720p. У меня есть FFMPEG, работающий на компьютере с Linux, куда я загружаю файлы для кодирования в формат FLV. Похоже, что видео кодируется нормально, но в полученном FLV-файле нет звука. Кроме того, при воспроизведении во Flash Player, браузере или Adobe Media Player видео останавливается в начале. Похоже, что Adobe Media Player ждет, пока индикатор выполнения не достигнет конца видео, прежде чем начать воспроизведение - то есть видео загрузится, изображение остановится, индикатор выполнения стремится к концу, как если бы видео воспроизводилось, затем, когда оно доходит до конца видео изображение начинается. На видео нет звука. Я заметил это в видеоплеере, который я построил с помощью Flash 8, используя компонент FLVPlayback и прикрепленный seekBar. Панель поиска начнет двигаться, как будто видео воспроизводится, но картинка остается в режиме паузы.
Вот некоторые выводы из моего журнала FFMPEG и команда, которую я использую для кодирования видео.
Моя команда FFMPEG вызвана из 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';
Вывод из моего журнала ошибок:
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%
Какие здесь важные ошибки?
В картинке перед любыми ссылками, пропуская?
Ошибка decode_slice_header?
без рамки?
или же
Кажется, что частота кадров кодека потока 0 отличается от частоты кадров контейнера: 119,88 (120000/1001) -> 59,94 (60000/1001)