node.js - 根据挂钟时间组合视频和音频 .webm 文件
问题描述
我有一个节点服务器通过 ffmpeg 将 webrtc 流记录为单独的视频/音频文件。我正在通过节点运行 ffmpeg
child_process.spawn('ffmpeg', commandArgs);
不幸的是,当我稍后尝试合并视频和音频文件时,我不知道 ffmpeg 何时创建每个文件的第一帧,导致面部和声音不同步:(
这是我的命令行参数,用于将流传输到 ffmpeg
'-loglevel',
'debug',
'-reorder_queue_size',
'0',
'-protocol_whitelist',
'pipe,udp,rtp',
'-fflags',
'+genpts',
'-f',
'sdp',
'-i',
'pipe:0',
'-map',
'0:v:0',
'-c:v',
'copy',
'-use_wallclock_as_timestamps',
'1',
'-timestamps',
'mono2abs',
'-flags',
'+global_header',
'./recordings/video_1627600996166.webm'
我在想可能可以将数据包的时间戳设置为 linux 的时钟时间,并尝试了一堆标志(-timestamps abs、-timestamps mono2abs、-use_wallclock_as_timestamps 1)但似乎没有任何改变文件中的结果。(我也尝试过移动时间命令)。
packet|codec_type=video|stream_index=0|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=N/A|duration_time=N/A|convergence_duration=N/A|convergence_duration_time=N/A|size=14568|pos=552|flags=K_
时间总是从 0 开始。
任何帮助弄清楚如何从我录制的音频/视频 .webm 文件中获取准确时间以便我可以准确地组合它们将是惊人的。
非常感谢 :)
解决方案
推荐阅读
- java - eclipse中服务器配置的路径是如何创建的?
- javascript - 在将输入保存到jQuery中的点击变量内联后从输入中获取值
- java - 继承具有指定类型的泛型类时是否会发生类型擦除?
- python - 单元测试不可变对象变量?
- sql-server - 哪个为与 Qlikview 的连接提供更好的性能?SQL 服务器或 SSAS Cube?
- excel - 引用另一个已关闭工作簿的 Excel 公式不更新数据
- php - 小部件内容未显示在 wordpress 的页面上
- python - Python Marshmallow 未在必填字段中检测到错误
- java - 比较两个excel文件中的数据并在第三个文件中写入相应的映射
- jersey-2.0 - 在基于 Jersey 的应用程序中使用 Google Guice for DI 在 weblogic 的服务器启动时出现 WELD 异常