我目前正在尝试通过 ffmpeg 将视频发送到 udp 流。因此,我通过 ffmpeg.stdin.write(data) 将 rawvideo 直接传输到 ffmpeg 中。这是我的选项/参数:
var ffmpegArgs = [
'-c:v', 'rawvideo',// input container
'-f', 'rawvideo',
'-pix_fmt', 'rgba', // input pixel format
'-s', '600x600', //input size
'-video_size', '600x600',
'-i', 'pipe:0', // input source
'-format', 'mpegts', // output container format
'-c:v', 'libx264', // output video codec
'-b:v', '2m', // output bitrate
'udp://239.255.123.46:1234' // output destination
];
我想知道的是:启动时,我立即收到一条错误消息 无法找到“udp://239.255.123.46:1234”的合适输出格式
,但是当我在那里输入一个文件名(用于保存视频),例如 video.mp4
,视频录制和渲染一切正常,我可以在停止后打开它。
那么为什么 UDP 流不能工作呢?有任何想法吗?当直接从命令行运行带有视频的 FFMPEG 并使用该 UDP 流地址时,一切都工作得很好。
有什么问题吗?
最佳答案
将'-format', 'mpegts'
更改为'-f', 'mpegts'
。后者用于强制输出(或输入)格式。
关于javascript - FFMPEG UDP 输出不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45059302/