Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用FFmpeg通过管道输出视频片段_Javascript_Node.js_Ffmpeg_Video Streaming_Http Live Streaming - Fatal编程技术网

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

Javascript 使用FFmpeg通过管道输出视频片段,javascript,node.js,ffmpeg,video-streaming,http-live-streaming,Javascript,Node.js,Ffmpeg,Video Streaming,Http Live Streaming,My Node.js应用程序使用FFmpeg捕获DirectShow设备的视频,然后输出用于直播(HLS)的片段。目前,我正在将这些段输出到文件中,但是,如果我可以通过管道输出它们,这将允许我通过websocket而不是托管HTTP服务器高效地发送该段 我已尝试使用此命令: ffmpeg-y-f dshow-i视频=FFsource:音频=立体声混音(Realtek High 定义音频)-vcodec libvpx-acodec libvorbis-线程0-b:v 3300k-cpu使用的5-最

My Node.js应用程序使用FFmpeg捕获DirectShow设备的视频,然后输出用于直播(HLS)的片段。目前,我正在将这些段输出到文件中,但是,如果我可以通过管道输出它们,这将允许我通过websocket而不是托管HTTP服务器高效地发送该段

我已尝试使用此命令:

ffmpeg-y-f dshow-i视频=FFsource:音频=立体声混音(Realtek High 定义音频)-vcodec libvpx-acodec libvorbis-线程0-b:v 3300k-cpu使用的5-最小键输入150-g 150-映射0-标志:v +全局_头-f段-

但是,它给出了错误“无法写入输出文件#0的头(编解码器参数不正确?):未找到Muxer”。此命令用于输出到文件(通过将“-”替换为“seg_u%03d.webm”)


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

您可以通过
ffmpeg-i管道:0管道:1
从标准输入读取并输出到标准输出

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


如果您计划从网络上进行流式传输,那么在某个时候可能需要一个循环缓冲区。项目中有一个可以抓取。

使用
-f nut
而不是
-f segment
nut
格式可以包含所有类型的标题和音频、视频编解码器

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 nut pipe:

尝试使用“pipe:1”而不是仅仅使用“-”来输出到stdout,但是我仍然得到相同的错误。不过,这似乎只是分段的问题,因为使用“pipe:1”输出整个文件效果很好。谢谢。在管道上输出分段文件意味着什么?你找到解决方案了吗?