问题标签 [muxer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
702 浏览

encoding - 将 GStreamer 管道编码和复用到 MPEG-TS

我正在尝试将 GESPipeline 编码并复用到 MPEG-TS 中,以便通过 UDP 进行流式传输。
管道在预览模式下在屏幕上播放良好。
我的尝试,基本上:

在 GST_DEBUG=3 的输出中:

encodebin gstencodebin.c:1976:create_elements_and_pads: 错误:没有可用于格式视频/mpegts 的复用器

更新:更详细的调试显示它实际上查看了 mpegtsmux,但跳过了它。为什么?
相关讯息:

gst_encode_bin_setup_profile:设置配置文件 0x557c3c98c460:test-app-profile(类型:容器)
create_elements_and_pads:当前配置文件:test-app-profile
_get_muxer:获取格式视频/mpegts 的多路复用器列表
gst_element_factory_list_filter:查找工厂
...
gst_element_factory_list_filter:尝试 mpegtsmux
gst_structure_parse_field :尝试字段名称'systemstream'
_priv_gst_value_parse_value:尝试类型名称'boolean'
gst_structure_parse_field:尝试字段名称'packetsize'
_priv_gst_value_parse_value:尝试类型名称'int'
...尝试其他复用器...

如果我将 video/mpegts 更改为 video/x-matroska,则会生成 mkv 文件(虽然丑陋且没有声音)。

如何编码成mpeg?

0 投票
2 回答
174 浏览

go - 视频的实时复用

我的问题基本上来自我有 2 个不同的视频播放流,并且必须在内存中实时混合它们。一个用于视频,另一个用于音频。

我的目标是创建一个代理,它可以从它们的 URL 中复用 2 个不同的 webm 流,同时支持范围请求(需要知道编码文件的大小)。这可能吗?

这就是我使用 ffmpeg 手动混合音频和视频流的方式:

但是,这需要我完全下载视频来处理它,不幸的是我不想这样做。

提前致谢!

0 投票
1 回答
394 浏览

javascript - 如何使用 grpc-web 进行流式传输并在同一端口上使用 REST API?

我在 Go 中有一个服务器,用于cmux允许多个协议在同一个端口上运行,但是 README 中指定了一个限制,说

cmux当它被接受时匹配连接。例如,一个连接可以是 gRPC 或 REST,但不能同时是两者。也就是说,我们假设客户端连接用于 gRPC 或 REST。

我需要浏览器能够从 grpc-web 流式传输并在同一端口上调用 REST API,但浏览器重用相同的连接并导致多路复用不起作用。

0 投票
1 回答
513 浏览

c - GStreamer qtmux/mp4mux 命令转码

我正在使用 qtmux 将音频和视频与 GStreamer 合并为 mp4 容器文件。我的管道看起来像:

gst-launch-1.0 autovideosrc !x264enc !队列 !qtmux0. 自动音频!波浪!队列 !qtmux!文件接收器位置=file.mp4

它与命令行配合得很好。但我想用 C 代码对其进行编码。我被困在这部分:

这是这部分的代码。

但是在步进链接垫中是错误的。以及错误类型:GST_PAD_LINK_NOFORMAT (-4) – pads do not have common format

我该如何解决?

0 投票
1 回答
138 浏览

video - 使用 ffmpeg 空复用器获取视频持续时间。有或没有流复制?

因为 ffprobe 有时会报告视频持续时间的无效值,所以我们经常在网上找到针对此特定问题的一种获得准确视频持续时间的推荐方法是使用 ffmpeg null muxer 解码文件并解析“time = ...”行。

这个解决方案的问题是它非常非常慢。我注意到这个解决方案的流映射是:

所以我通过添加“-c copy”更新了前面的命令

现在解码过程(真的是解码吗?)快了 600 倍!

为什么这个解决方案不像前一个那样受欢迎?视频持续时间仍会报告,并且似乎与以前一样准确。

我对这个解决方案做错了吗?

0 投票
1 回答
111 浏览

audio - FFmpeg 输出视频文件比未压缩的输入音频文件小得多,使用选项保留原始音频质量

我尝试分两步从多个图像文件和音频文件创建视频幻灯片:

  1. 从一系列图像文件创建临时视频文件
  2. 将音频文件添加到临时视频文件中,延迟为 5 秒

音频文件是一个未压缩的立体声 wav 文件,以 44100 Hz 的采样率和 32 位的位深度进行编码,大小为 40.1 MB。为了保持输入音频文件的无损质量,我根据Slideshow Wiki使用选项-c:a aac -b:a 192k。但是,最终输出的视频文件大小仅为 4.49 MB。

输出的视频文件如何比输入的音频文件小 10 倍左右,并且仍然保持原始的无损质量?

我的代码:

0 投票
0 回答
15 浏览

ffmpeg - 列出 FFmpeg 中给定复用器支持的编解码器

有没有办法知道复用器/格式支持的视频编解码器?

例如,对于MOVmuxer,我可以使用以下命令获取其信息:

我会得到这个结果:

有没有办法知道给定复用器/格式的可用编解码器?

0 投票
1 回答
135 浏览

ffmpeg - FFmpeg 需要帮助形成一个 tee muxer 同时发送到 2 个社交网络

我想在 1 个 ffmpeg 进程中流式传输到 youtube 和 twitter

我把这个https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs

我做这个命令

我进入命令行

我的命令有什么问题?

0 投票
1 回答
158 浏览

video - 无法使用 FFmpeg 将 MP4 重新混合到 MP4 中(在流 #1 中找不到编解码器的标签)

我正在尝试使用除视频之外的所有流(和元数据)创建 MP4 的副本。

但是,由于某种原因,即使输入和输出都是 mp4,我也会收到编解码器错误。

我已经尝试映射所有内容,但是使用-vn
ffmpeg -i input.mp4 -vn -copy_unknown -map 0 -c copy out.mp4

或使用负映射:
ffmpeg -i input.mp4 -map 0 -map -0:v -c copy out.mp4

两个命令都返回:
[mp4 @ 0000012b16bce340] Could not find tag for codec none in stream #1, codec not currently supported in container

有任何想法吗?

尝试将 MP4 重新混合为 MP4 时,怎么可能出现编解码器错误?

你可以在这里下载我试过的视频:https ://icedrive.net/0/e4EpBXLe2V

日志:https ://pastebin.com/5gD70KXn

0 投票
0 回答
39 浏览

java - Android Muxer 错误:已经有编解码器特定的数据

writeSampleData在多路复用器上调用错误“已经有编解码器特定数据”时,我找不到修复程序。

有人知道这个错误的含义以及如何解决它吗?

我的片段