【发布时间】:2020-06-23 23:44:57
【问题描述】:
我正在尝试使用 nodeJS 和 ffmpeg 制作一个基本的在线视频编辑器。
为此,我需要 2 个步骤:
设置客户端视频的进出时间,需要客户端在特定的时间观看视频,并切换视频的位置。这意味着,如果将单个视频用作输入并将其拆分为更小的部分,则需要从下一个编辑片段的开始时间重播,如果这有意义的话。
将输入输出数据发送到 nodejs 并使用 ffmpeg 将其导出为完成的视频。
一开始我想做1.纯粹在客户端,然后将源视频上传到nodeJS,并用ffmpeg生成相同的结果,并将结果发回。
但是目前在客户端用 HTML 处理视频可能有问题,所以现在我有一个改变计划:在 nodeJS 服务器上做所有的处理,包括视频播放。
这是我现在陷入困境的部分。我知道 ffmpeg 可以以与 nodeJS 不同的方式使用,但是 我还没有找到一种方法来使用 ffmpeg 在特定时间戳实时播放 .mp4 webm 视频并发送流式视频(再次,在某个时间戳)发送给客户端。
我从 ffmpeg 看到了 pipe:1 属性,但我找不到任何教程来让它与 mp4 webm 视频一起工作,并以某种方式使用 nodejs 解析标准输出数据并将其发送到客户端。即使我可以让这部分工作,我仍然不知道在某个时间戳实时播放视频。
我也看过ffplay,但据我所知,那只是为了测试;我还没有看到任何使用 nodejs 实时获取视频数据的方法。
所以:
如何在特定时间(最好使用 ffmpeg)在 nodeJS 中播放视频,并将其实时发送回客户端?
我已经看到的:
Best approach to real time http streaming to HTML5 video client
Live streaming using FFMPEG to web audio api
Ffmpeg - How to force MJPEG output of whole frames?
ffmpeg: Render webm from stdin using NodeJS
No data written to stdin or stderr from ffmpeg
node.js live streaming ffmpeg stdout to res
Realtime video conversion using nodejs and ffmpeg
Pipe output of ffmpeg using nodejs stdout
can't re-stream using FFMPEG to MP4 HTML5 video
FFmpeg live streaming webm video to multiple http clients over Nodejs
http://www.mobiuso.com/blog/2018/04/18/video-processing-with-node-ffmpeg-and-gearman/
stream mp4 video with node fluent-ffmpeg
How to get specific start & end time in ffmpeg by Node JS?
Live streaming: node-media-server + Dash.js configured for real-time low latency
Low Latency (50ms) Video Streaming with NODE.JS and html5
Server node.js for livestreaming
Stream part of the video to the client
Video streaming with HTML 5 via node.js
How to (pseudo) stream H.264 video - in a cross browser and html5 way?
How to stream video data to a video element?
How do I convert an h.264 stream to MP4 using ffmpeg and pipe the result to the client?
https://medium.com/@brianshaler/on-the-fly-video-rendering-with-node-js-and-ffmpeg-165590314f2
【问题讨论】:
标签: javascript node.js ffmpeg mp4 webm