You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

通过命名管道向FFmpeg传输音视频数据时,FFmpeg仅接收1帧视频后就读取音频管道的问题求助

通过命名管道向FFmpeg传输音视频数据时,FFmpeg仅接收1帧视频后就读取音频管道的问题求助

嘿,我最近碰到个棘手的问题,想跟大家请教下:

我原本可以通过命名管道逐个把视频帧传给FFmpeg,顺利生成视频文件。但当我尝试同时把音频数据传到第二个命名管道,让FFmpeg同时处理音视频时,怪事发生了——FFmpeg只接收了1帧视频数据,就立刻开始读取音频管道,后续的视频帧好像根本没被处理,整个音视频合成流程完全乱套了。

我用的FFmpeg命令如下:

ffmpeg.exe -loglevel debug -hwaccel auto  -f:v rawvideo -r 25 -pix_fmt bgra -video_size 782x601 -i \\.\pipe\video_to_ffmpeg  -f:a s16le -ac 2 -ar 48000 -i \\.\pipe\audio_to_ffmpeg  -c:v libx264 -preset fast -pix_fmt yuv420p  -vf "scal

(注:命令后半段的滤镜参数未完整粘贴,实际使用时为完整参数)

目前我自己摸索了一些方向但还没解决,想问问有没有朋友遇到过类似情况,或者能给点排查建议?比如:

  • 是不是音视频数据的推送时序出了问题?比如得先推送足够量的视频帧作为缓冲,再启动音频推送?
  • FFmpeg有没有可调整的参数,能优化多输入的缓冲大小或者优先级,避免它因为视频输入暂时断流就立刻切换到音频输入?
  • 会不会是命名管道的写入逻辑有问题?比如视频管道的写入操作有没有持续稳定地进行,而非只推送1帧就暂停?

备注:内容来源于stack exchange,提问作者Nicke Manarin

火山引擎 最新活动