问题标签 [pyav]

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 投票
2 回答
3188 浏览

python - 如何使用 pyav 或 opencv 解码原始 H.264 数据的实时流?

数据由套接字接收,没有更多的外壳,它们是纯 IPB 帧,以 NAL Header 开头(类似于 00 00 00 01)。我现在正在使用 pyav 解码帧,但我只能在收到第二个 pps 信息(在关键帧中)后解码数据(所以我发送到我的解码线程的数据块可以以 pps 和 sps 开头),否则decode() 或 demux() 将返回错误 "non-existing PPS 0 referenced decode_slice_header error" 。

我想将数据馈送到可以记住前一个 P 帧的持续解码器,因此在馈送一个 B 帧后,解码器返回一个解码的视频帧。或者某种形式的 IO,可以作为容器打开并通过另一个线程继续向其中写入数据。

这是我的关键代码:

我的代码将播放视频,但有 3~4 秒的延迟。所以我不会把所有的东西都放在这里,因为我知道它实际上并没有达到我想要实现的目标。我想在收到第一个关键帧后播放视频,并在收到后立即解码以下帧。Pyav opencv ffmpeg 或其他东西,我怎样才能实现我的目标?

0 投票
1 回答
875 浏览

python - PyAv av.open() 指定使用的编解码器

当使用 PyAv 打开 alsa 音频设备时。我如何指定使用的编解码器而不是 ffmpeg 默认的编解码器,因为那是错误的。默认情况下它将使用pcm_s16le,我需要使用pcm_s32le. 我可以使用以下 ffmpeg 命令从我的设备录制:

但不与

这会给我以下错误:

如何将工作命令转移到 PyAv av.open()函数?有,stream_options但似乎不起作用。我试过了

我得到的和上面一样。

这个怎么做?

0 投票
1 回答
142 浏览

python - Heroku 无法安装 av (pyav)

我一直在尝试设置我的 Python Web 应用程序,它使用 opencv、tensorflow 和 av 模块,但一直失败。我曾尝试使用Aptfile安装几个 Ubuntu 库(libsm6, libxrender1等),但安装仍然失败。

安装失败后,heroku 服务器解析为从源代码构建 av 模块,这也失败了,gcc 在这里失败:

有没有人经历过这个?或者有在 Heroku 中使用 av/pyav 的经验吗?请告诉我我错过的任何事情。谢谢。

0 投票
1 回答
586 浏览

python - PyAV:如何同时在屏幕上显示多个视频流

我只是在学习使用视频帧和 python 语言的新手。我需要使用 PyAV 同时在屏幕上显示多个视频流。

下面的代码适用于一台相机。请帮我在屏幕上显示多个摄像头。我应该在这段代码中添加或修复什么?

0 投票
0 回答
769 浏览

audio - 如何在使用 pyav、ffmpeg、python 解码 mp3 文件后使用音频帧

我正在使用 python 和 pyav、ffmpeg 来解码内存中的 mp3。我知道还有其他方法可以做到这一点,比如 pipe ffmpeg 命令。但是,我想探索 pyav 和 ffmpeg API。所以我有以下代码。它可以工作,但声音非常嘈杂,虽然可以听到:

我使用管道 ffmpeg 获取解码数据以进行比较并发现它们不同:

然后我用pyaudio播放数据,发现很吵

请帮助我理解 pyav api 的解码帧(在for frame inpacket.decode()之后)。是不是应该多处理?还是我有一些错误?

0 投票
0 回答
250 浏览

python - 从 PyAV av.VideoFrame 创建 HLS 视频流

我希望你大声而自豪。

我是新手PyAV,我正在使用aiortcWebRTC MediaServer,在aiortc实时会话中,我有av.VideoFrame可用于每个视频帧的对象,我想从这些帧实时创建 HLS 视频片段。

正如您在这个项目中看到的那样:
他们使用OpenCV管道传输到FFmpegCLI 的视频帧字节用于 HLS 流

我的问题是,如何使用PyAV/python来消费av.VideoFrame对象并提取由 60 帧组成的 2 秒视频片段用于 HLS 流式传输?

或任何适合将 VideoFrames 组装到 HLS 流的 python 包

提前致谢

0 投票
0 回答
445 浏览

python - 使用 python 和 AudioSegment 进行实时音频处理

好吧,出于某种原因,我想将一些选定的 mp3 文件拆分为块时间:~28 毫秒。

我有切片<1秒的质量问题。

我该如何解决质量问题?

请注意,我使用 av.AudioFrame ( frame = codec.decode(packet)[0]) 因为我想用 aiortc 发送一些实时音频数据

编辑:

上面的代码有效(更好)。现在的主要问题是:

  1. 声音听起来很有深度。
  2. 每次声音重新开始(从头开始)时都会发出咔哒声。
0 投票
2 回答
169 浏览

ffmpeg - pyav / libav / ffmpeg 当来自实时源的帧处理速度不够快时会发生什么

pyav用来处理实时 RTSP 流:

如果我do something太慢了怎么办?帧/数据包是否被丢弃或被缓冲?

我想同样的问题也适用于libavor ffmpeg

0 投票
0 回答
42 浏览

ffmpeg - H264运动秤

H264 运动矢量中的运动比例是多少?看看我使用pyav(pythonic 绑定libav- 大致相同ffmpeg)提取的以下运动向量:

考虑第一行。我的理解是,通过将src_x138乘以motion_scale4,我们得到图像中的实际src_x值:即图像已缩小了 4 倍。

我的问题如下:motion scale在数据包中总是具有唯一值还是可以假设不同的值?

0 投票
1 回答
270 浏览

ffmpeg - pyav / Libav / ffmpeg 禁用 B 帧

我正在使用pyav(python wrapper for libav) 来摄取 H264 视频流。是否有禁用 B 帧的选项?我认为同样的问题也适用于libavand ffmpeg