首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将音频和视频mjr文件合并生成一个文件?

如何将音频和视频mjr文件合并生成一个文件?
EN

Stack Overflow用户
提问于 2015-02-04 13:07:52
回答 3查看 3K关注 0票数 4

我正在使用janus网关在网络浏览器中进行录制。录制完成后,将生成两个文件,一个是音频文件,另一个是视频文件。两者的格式都是mjr。如何将这两个文件组合在一起以创建单个文件?

EN

回答 3

Stack Overflow用户

发布于 2017-01-19 22:24:16

我也在处理同样的需求。

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

在下载git源代码的文件夹上运行以下命令:

代码语言:javascript
运行
复制
./configure --enable-post-processing

然后

代码语言:javascript
运行
复制
make
(sudo) make install

然后对每个您想要将其转换为音频/视频格式的文件运行此命令:

代码语言:javascript
运行
复制
./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仓库中了)

代码语言:javascript
运行
复制
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg

最后,将音频与视频合并:

代码语言:javascript
运行
复制
(sudo) ffmpeg -i audio.opus -i video.webm  -c:v copy -c:a opus -strict experimental mergedoutput.webm

在那里,您可以构建一个shell脚本来自动转换cron上的所有mjr文件。

票数 7
EN

Stack Overflow用户

发布于 2015-08-09 05:12:41

我有一台very primitive example of doing this in C with Gstreamer。注意,这段代码非常混乱,但它应该会告诉你需要做什么。

以下是合并这些文件需要执行的操作的列表:

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

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

票数 0
EN

Stack Overflow用户

发布于 2021-05-29 14:51:03

代码语言:javascript
运行
复制
sudo apt-get install libavutil-dev libavcodec-dev libavformat-dev

安装依赖项后...

代码语言:javascript
运行
复制
./configure --prefix=/opt/janus --enable-post-processing

然后使用此BASH文件

代码语言:javascript
运行
复制
#!/bin/bash

# converter.sh

# Declare the binary path of the converter
januspprec_binary=/opt/janus/bin/janus-pp-rec

# Contains the prefix of the recording session of janus e.g
session_prefix="$1"
output_file="$2"

# Create temporary files that will store the individual tracks (audio and video)
tmp_video=/tmp/mjr-$RANDOM.webm
tmp_audio=/tmp/mjr-$RANDOM.opus

echo "Converting mjr files to individual tracks ..."
$januspprec_binary $session_prefix-video.mjr $tmp_video
$januspprec_binary $session_prefix-audio.mjr $tmp_audio

echo "Merging audio track with video ..."

ffmpeg -i $tmp_audio -i $tmp_video  -c:v copy -c:a opus -strict experimental $output_file

echo "Done !"

下面的命令应该可以做到这一点:

代码语言:javascript
运行
复制
bash converter.sh ./room-1234-user-0001 ./output_merged_video.webm
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28313891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档