2013-09-03 1 views
1

У меня проблема с записанным видео в Red5 v1.0.2 (у меня были проблемы с предыдущим v1, он не записывал никаких видеороликов, 1.0.2 он работает). Когда я записываю flv Я хочу, чтобы конвертировать его в некоторые mp4. Но у меня проблема с настройками, потому что каждый раз возникает проблема с качеством/звуковой синхронизацией. Может у, пожалуйста, помогите мне, как конвертировать с ffmpeg (в будущем автоматический процесс на сервере).RED5 1.0.2 записан FLV конвертировать в формат Mobile/HTML5 с отсутствием синхронизации FFMPEG

Вторая проблема заключается в том, что вспышка клиента длина буфера всегда , но в v0.8 он был заполнен и на конец я ждал, пока пустой, здесь я не уверен, как долго я должен ждать , Я основал этот url http://code.google.com/p/red5/issues/detail?id=312, где они сказали подождать, пока я не получу UnPublish.Success, но это событие я получил только после ns.Закрыть()

Мои настройки записи флэш-клиент (FP10):

видео: разрешение

  • = 640x360
  • кадров в секунду = 30
  • keyframeinterval = 15
  • качество видео = 90
  • пропускная способность = 0

аудио:

  • микрофон кодек = SPEEX
  • encodeQuality = 9
  • silencelevel = 0

  • bufferTime = 15

записанные параметры видео в VLC (в переводе с чешского языка на английский):

видео

  • Кодек: Flash Video (FLV1)
  • Разрешение: 640x360
  • Формат: Planar 4: 2: 0 YUV

аудио

  • кодек: Speex Аудио (SPX)
  • частота: 16000 Гц
  • бит на выборку: 16
  • поток данных: 16 кб

FFMEPG Информация/с о видео:

Metadata: 
    server   : Red5 Server 1.0.2 Rev: 4616 
    creationdate : Mon Sep 02 23:17:08 CEST 2013 
    canSeekToEnd : true 
Duration: 00:00:33.24, start: 0.000000, bitrate: 645 kb/s 
    Stream #0:0: Video: flv1, yuv420p, 640x360, 625 kb/s, 1k tbr, 1k tbn, 1k tbc 

    Stream #0:1: Audio: speex, 16000 Hz, mono, s16, 16 kb/s 

bsplayer показывает 25 кадров в секунду - но я записал 30 кадров в секунду, я так не понимаю.

что я пытался использовать ffmpeg (я новичок ffmpeg).

Сначала я записал 33sec длинное видео

, когда я конвертировать аудио с помощью команды: ffmpeg -i test.flv -ar 44100 -ab 160k -ac 1 output.mp3, то звук только 30сек

Я попробовал эти команды, но не один с хорошим решением

ffmpeg -i test.flv -vcodec mpeg4 -acodec libvo_aacenc output.mp4 

ffmpeg -i test.flv -acodec libvo_aacenc -aq 200 outputsss.mp4 

ffmpeg -i test.flv -c:v libvpx -c:a libvorbis output.webm // here is sound synced good - but sound have repeating silence lags (every 1-2s) 

действительно благодарю вас за помощь, я сражаюсь с конверсией много дней :(

+0

Вы пробовали с Xuggler ..? В Xuggler IMediaReader и IMediaWriter помогут вам конвертировать FLV в mp4 –

ответ

0

У нас были и проблемы с аудиозаписью (мы, re все еще на 0.8, поскольку 1.0 поврежденные записанные FLV-файлы - попробует снова с 1.0.3).

Наше решение заключалось в использовании командной строки «MediaInfo» для извлечения задержки звука. MediaInfo может возвращать вывод XML (обязательно проверьте строку версии, поскольку этот результат имеет тенденцию меняться с версией), и мы проанализировали что-то вроде /Mediainfo/File/track[@type="Audio"], правильная запись называется (в нашем случае) Video_Delay_String3.

Затем он подается в команду ffmpeg transcode с -itsoffset -00:00:00.XX.

+0

Спасибо за ваш ответ. Со временем я основал, что это, возможно, создано игрой. Из-за небольшого буфера. Во время записи видео и аудиопакеты хранятся в буфере в случайном порядке. Поэтому при воспроизведении большого размера буфера необходимо установить (лучше всего установить ту же длину, что и длина видео). Я оставил RED5, и теперь я использую nginx, который отлично работает, но все равно должен использовать это исправление буфера. –

Смежные вопросы