RED5 1.0.2记录FLV转换为Mobile / HTML5格式,FFMPEG av不同步

时间:2013-09-03 06:31:24

标签: ffmpeg sync mp4 flv red5

我在 Red5 v1.0.2 中录制视频有问题(我之前的v1出现问题,它没有录制任何视频,1.0.2可行)。当我录制 flv 时,我想转换为某些 mp4 。但我的设置有问题,因为每次出现质量/音频同步的问题。您可以帮助我如何使用 ffmpeg 进行转换(在服务器上的未来自动过程中)。

第二个问题是,在Flash客户端缓冲区长度总是 0 ,但在 v0.8 中它已被填充并且在最后我等待直到空,这里我不知道我应该等多久。我创建了这个网址http://code.google.com/p/red5/issues/detail?id=312,他们说要等到 UnPublish.Success ,但是这个事件我只是在ns.close()

之后才得到

我的Flash客户端记录设置为(FP10):

视频

  • 分辨率= 640x360
  • fps = 30
  • keyframeinterval = 15
  • 视频质量= 90
  • bandwidth = 0

音频

  • 麦克风编解码器= SPEEX
  • encodeQuality = 9
  • silencelevel = 0

  • bufferTime = 15

在VLC中录制的视频参数(从捷克语翻译成英语):

视频

  • 编解码器:Flash视频(FLV1)
  • 分辨率:640x360
  • 格式:平面4:2:0 YUV

音频

  • 编解码器:Speex Audio(spx)
  • 频率:16000Hz
  • 每个样本
  • 位:16
  • 数据流:16 kb / s

关于视频的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显示25fps - 但我记录了30fps,我不太明白这一点。

我尝试用ffmpeg (我是新手)。

首先我录制了33秒长的视频

当我使用命令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)

非常感谢你的帮助,我在很多天里与转换作斗争:(

1 个答案:

答案 0 :(得分:0)

我们也有这些音频延迟问题(我们仍然是0.8,因为1.0损坏的录制FLV文件 - 将再次尝试使用1.0.3)。

我们的解决方案是使用命令行" MediaInfo"提取音频延迟的工具。 MediaInfo可以返回XML输出(确保检查版本字符串,因为此输出随版本而变化)并且我们解析类似/Mediainfo/File/track[@type="Audio"]的内容,正确的条目被命名(在我们的例子中){{1 }}

然后使用Video_Delay_String3将其输入ffmpeg transcode命令。