使用FFmpeg通过管道输出视频片段

Joe*_*ani 6 javascript ffmpeg video-streaming node.js http-live-streaming

我的Node.js应用程序使用FFmpeg捕获DirectShow设备的视频,然后输出分段以进行实时流(HLS)。目前,我正在将段输出到文件,但是,如果可以通过管道将其输出,则可以通过websocket而不是托管HTTP服务器有效地发送段。

我试过使用此命令:

ffmpeg -y -f dshow -i video = FFsource:audio = Stereo Mix(Realtek High Definition Audio)-vcodec libvpx -acodec libvorbis -threads 0 -b:v 3300k -cpu-used 5 -keyint_min 150 -g 150 -map 0 -flags:v + global_header -f段-

但是,它会出现错误“无法为输出文件#0写入标题(编解码器参数不正确?):找不到混合器”。此命令适用于输出到文件(通过将'-'替换为'seg_%03d.webm')。

FFmpeg是否不支持分段视频的管道,或者命令有问题吗?谢谢。

Lau*_*rin 0

您可以传递ffmpeg -i pipe:0 pipe:1从标准输入读取并输出到标准输出。

您可以看一下我在我的一个项目中使用的 FFmpeg 包装器示例:

https://github.com/lperrin/node_airtunes/blob/master/examples/play_ffmpeg.js

如果您计划从网络进行流式传输,则有时可能需要循环缓冲区。项目中有一个你可以抢走。