问题标签 [pts]
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.
video - 在ffmpeg中可靠地获取PTS值?
我正在尝试编写一种方法,该方法将在查询时提供下一帧和演示时间戳。代码目前看起来像这样:
到目前为止,我一直在关注 Dranger 教程,但在可靠地获取帧的 PTS 值方面停滞不前(http://www.dranger.com/ffmpeg/tutorial05.html)。返回的 PTS 值始终为 0。
另外,get_buffer()
已弃用,所以我现在使用该get_buffer2()
方法来设置全局 pts 值。但是,该release_buffer
方法也已被弃用,我似乎找不到它的替代品。这让我相信教程中列出的方法可能不再是完成这项任务的最佳方式。
简而言之,使用最新的 ffmpeg,可靠地获取帧 pts 值的最佳方法是什么?
gpu - Phoronix-Test-Suite 的 C-Ray 测试
我对 Phoronix-Test-Suite 中包含的 C-Ray 测试感到困惑。它在网站上说,“这东西只测量'浮点CPU性能',仅此而已,还好没有其他任何影响结果。”
我需要知道的是这个测试是否也使用了某种 GPU。
任何帮助,将不胜感激。
提前致谢。
audio - mpeg2-ts aac PTS
我有一个 IP 摄像机,它发送 8000hz 采样率配置的音频和 H264 视频。我制作了一个从这个 IP 摄像机生成 TS 文件的程序,它在 VLC、Android 媒体播放器(除了 iPhone、Mac OSX Safari 之外)上运行良好。(该程序适用于我制作的 HLS 服务器。)
在 Iphone、Safari 中播放视频很好,但音频不是。(我能听到声音,但播放不流畅)
我了解 TS 数据包中的音频 PTS 应该是基于 MPEG2 Sytem PCR 时钟的(90000hz)。IP 摄像机发送的时间戳值基于采样率(8000hz),因此当我在 TS 文件中写入音频的 PTS 时,我将 90000/8000 乘以时间戳以使 PTS 成为 MPEG2 PCR 时钟。
将 90000/8000 乘以音频 PTS 的方法是否错误?任何帮助将不胜感激。
serial-port - -qemu中的serial pty,如何打开?
我正在运行 qemu
-serial pty
选项,qemu 给出了这个信息
char 设备重定向到 /dev/pts/1
但是,它不会生成新窗口,我可以cat
从不同的窗口对 pts1 进行操作,但是我无法输入任何字符。
无论如何,您可以使用特定的 pts 编号启动一个新的 xterm 吗?
ffmpeg - 是否保证整个流的数据包持续时间是统一的?
我使用数据包持续时间从帧索引转换为 pts 并返回,我想确保这是一种可靠的方法。
或者,是否有更好的方法将 pts 转换为帧索引,反之亦然?
显示我的用法的片段:
matlab - Importing a large point cloud data file into MATLAB
I am a new MATLAB user with little programming experience (I have a mechanical engineering background) so I apologise in advance if this is a simple question!
I am trying to import a large point cloud file (.pts file extension) into MATLAB for processing. I'm lead to believe that the file contains a text header and 3 columns of integer data (x, y and z coordinates) - I managed to open the first part of the file as a text file and this is the case.
I cannot import the file directly into MATLAB as it is too large (875 million points) and can only import it 9000000 rows at a time, therefore I have written the script below to import the file (and consequently save) as 9000000x3 blocks, saved as MATLAB files (or another appropriate format).
Script:
#xA;The script runs fine and cycles through 5 iterations, importing 5 blocks of the data. Then, as it attempts to import the 6th chunk I get the following error:
#xA;I am unsure about what is causing the error, I believe it is relating to fread
command size, as I have experimented with various values such as 3, which enables just one block to be imported before the dimension mismatch error occurs.
Once more I apologise if I am missing something very basic, my understanding of programming techniques is very limited only having been introduced to it a couple of months ago.
libav - 在FFmpeg中帧编码前计算PTS
如何在 FFmpeg C API 中编码之前计算帧的正确 PTS 值?
对于编码,我使用函数avcodec_encode_video2
,然后用av_interleaved_write_frame
.
我找到了一些公式,但没有一个有效。
在doxygen 示例中,他们正在使用
这个博客说公式必须是这样的:
(1 / FPS) * 采样率 * 帧数
有人只使用帧号来设置pts:
或者另一种方式:
最后一个:
哪一个是正确的?我认为这个问题的答案不仅对我有帮助。
c - 如何使用单独的进程读取/写入 Linux 伪终端但不分叉?
我想编写一个模拟串行端口上的设备的程序。我正在尝试使用伪终端来完成此操作。我想要一个不同的进程来控制主人。此过程充当串行设备仿真器。我希望另一个进程(例如 kermit)能够使用从终端与主机通信。由于不同的流程要求,我没有使用任何分叉。互联网上几乎每个伪终端示例都显示了将 fork() 用于主/从。
我让它朝一个方向工作。也就是说,我可以让从属进程将数据写入从属伪终端,而主进程将从主伪终端读取数据就好了。
问题在另一个方向。我无法让主机写入数据和从机读取数据。
我将展示非工作双向代码和工作单向代码。
非工作双向master:
非工作双向奴隶:
非工作主机的输出:(注意接收到的第一个字符来自从机,然后是主机写入的字符。换句话说,主机正在读取它写给主机 pts 的相同字符,而忽略从机正在写作,除了第一个字符。)
非工作从机的输出:(从不接收主机正在写入的内容。)
工作单向大师:
工作单向奴隶:
工作主机的输出:(读取从机成功写入的内容。)
工作从机的输出:
android - 使用 ffmpeg 解析由 MediaCodec 编码的 h264 流中有关呈现时间的信息
我已经看到以下使用MediaCodec
API 进行编码/解码的示例。
https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media/src/android/media/cts/EncodeDecodeTest.java
其中有猜测的呈现时间和从解码信息接收的呈现时间的比较。
因为解码器只是解码编码缓冲区中的数据,我认为在这个编码器的输出 H.264 流中可以解析任何时间戳信息。
我正在编写一个 Android 应用程序,它使用( ) 将编码的 H264 流 (.h264) 混合MediaCodec
到 mp4 容器。我不想使用,因为它需要的 4.3 版本太高了。ffmpeg
libavformat
MediaMuxer
但是,ffmpeg
似乎无法识别由 编码的数据包中的表示时间戳MediaCodec
,因此在尝试从流中读取帧时,我总是得到 NO_PTS 值。
任何人都知道如何在这种情况下获得正确的演示时间戳?
encoding - 将 PTS/DTS 写入 MPEG 流 (Gstreamer)
因此,对于 GNURadio 项目,我将与 PSIP 数据混合的 MPEG-2 视频发送到我的电视。所述数据和视频的实际传递很好,但是视频没有正确解码。大部分都是空白,到处都是闪烁的块,快速移动的场景有更多的“垃圾”。它看起来像这样,除了大部分是黑色的,“块”随机出现和消失。它应该看起来像这样。
在将它添加到混音器进行测试之前,我正在使用 videtestsrc。我尝试了avconv,无论出于何种原因,它都没有这个问题。
这是管道,也在下面:
它在 mpv、SMPlater 和 TSReader 可以播放视频,但是在 mpv 的命令输出中显示的错误是“
和...
知道会发生什么吗?当它是实时源时,如何编写正确的 PTS/DTS 值?是的,我必须使用 MPEG-2 和 gstreamer。