我在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代码转换命令中。