大家好,谢谢你的阅读!
这是我的问题:我有一个程序将原始视频帧传输到标准输出。该程序使用OpenCV捕获和处理视频,并直接输出处理过的帧。循环同步到我选择的帧率。我正在使用ffmpeg从标准输入读取,一切都适用于视频。 但是现在我添加了声音我有一个很大的问题:越来越多的延迟发生了,我真的需要摆脱它。所以这是我的想法,但我真的需要你的帮助:
我必须找到一种方法,将时间戳信息包含在原始视频中。要被ffmpeg理解,它需要是一个已知的原始视频兼容容器。然后我将需要使用容器API并将其传递到我的程序中的标准输出。我真的不知道在视频格式和编解码器的丛林中使用什么,我不知道如何在ffmpeg中启用时间戳同步......
如果有人有想法,我真的很感兴趣。有关信息,这是我用来管道原始视频的命令行:
./myprogram | ffmpeg -y -f alsa -i pulse -ac 2 -f rawvideo -vcodec rawvideo -r 24 -s 640x480 -pix_fmt bgr24 -i - -vcodec libx264 -pix_fmt yuv420p -r 24 -f flv -ar 44100 out.flv;
非常善良,
罗兰
答案 0 :(得分:0)
视频和音频之间的延迟是多媒体领域的一个老问题。没有灵丹妙药可以解决它,但你可能会尝试使用不同的编解码器(特别是新的编解码器,而不是微软)。您可能会发现较低的延迟,并且,对于不错的视频长度(1小时),没有什么麻烦。
答案 1 :(得分:0)