如何结合audio和videomjr文件生成一个文件?

我使用janus-gateway在networking浏览器中进行录制。 录制完成后,会生成两个文件,一个是audio,另一个是video。 两者都有格式mjr。 我怎样才能将这两个文件结合起来创build一个文件?

    我正在处理同样的需要。

    如果你做了默认的janus-gateway安装,你只会错过这些步骤:

    在你下载git源的文件夹上运行这个命令:

    ./configure --enable-post-processing 

    然后

     make (sudo) make install 

    然后运行这个每个文件你想要转换成音频/视频格式:

     ./janus-pp-rec /opt/janus/share/janus/recordings/video.mjr /opt/janus/share/janus/recordings/video.webm ./janus-pp-rec /opt/janus/share/janus/recordings/audio.mjr /opt/janus/share/janus/recordings/audio.opus 

    如果你没有安装ffmpeg,运行这个(我在Ubuntu上,在其他发行版中ffmpeg可能已经在apt-get版本库中)

     sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next sudo apt-get update sudo apt-get install ffmpeg 

    然后最终将音频与视频合并:

     (sudo) ffmpeg -i audio.opus -i video.webm -c:v copy -c:a opus -strict experimental mergedoutput.webm 

    从那里你可以建立一个shell脚本来在cron上自动转换所有的mjr文件

    我有一个非常原始的例子,用Gstreamer在C中做这个事情 。 请注意,这段代码非常混乱,但它应该告诉你你需要做什么。

    以下是合并这些文件需要做什么的列表:

    1. 构建RTP缓冲区列表,以便可以在文件中迭代它们。 在janus-gateway后处理中有这样的例子
    2. 开始迭代你的文件在同一时间。 时间戳应该同步确定,虽然我遇到了一个问题,一个数据包将丢失或损坏写入这将搞砸合并
    3. 我对媒体进行解码,并在此重新编码,以便静态设置视频的帧率和大小。 我相信有一种方法可以做到这一点,而不必转码媒体。
    4. 复用并写入文件

    我做第一步完全像詹姆斯后处理器。 第2步我将每个rtp数据包从文件中推送到gstreamer appsrc元素。 步骤3和4在gstreamer管道内完成。