RED5 1.0.2录制的FLV转换为移动/HTML5格式,FFMPEG av不同步



我在Red5 v1.0.2中录制的视频有问题(我在以前的v1中有问题,它没有录制任何视频,1.0.2可以工作)。当我录制flv时,我想将其转换为一些mp4。但我的设置有问题,因为每次都有质量/音频同步的问题。你能帮我如何使用ffmpeg进行转换吗(在未来服务器上的自动处理中)。

第二个问题是,在flash客户端中,缓冲区长度总是0,但在v0.8中它被填满了,最后我一直等到空,在这里我不确定我应该等多久。我创建了此urlhttp://code.google.com/p/red5/issues/detail?id=312他们说要等到我得到UnPublish.Success,但我只在ns.close()之后得到了那个事件

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

视频:

  • 分辨率=640x360
  • fps=30
  • 关键帧间隔=15
  • 视频质量=90
  • 带宽=0

音频:

  • 麦克风编解码器
  • encodeQuality=9
  • 静音级别=0

  • 缓冲时间=15

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

视频

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

音频

  • 编解码器:Speex Audio(spx)
  • 频率:16000Hz
  • 每个样本位数:16
  • 数据流:16kb/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尝试了什么(我是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)

真的很感谢你的帮助,我已经和转换斗争了很多天:(

我们也遇到了这些音频延迟问题(我们仍然处于0.8,因为1.0损坏了记录的FLV文件-将在1.0.3中重试)

我们的解决方案是使用命令行"MediaInfo"工具来提取音频延迟。MediaInfo可以返回XML输出(一定要检查版本字符串,因为这个输出往往会随着版本的变化而变化),我们对类似/Mediainfo/File/track[@type="Audio"]的内容进行了解析,正确的条目命名为(在我们的例子中)Video_Delay_String3

然后,这被馈送到具有-itsoffset -00:00:00.XX的ffmpeg代码转换命令中。

最新更新