我想在 RTMP 传输期间直接从 flash 插件访问视频剪辑并将其保存到磁盘。我想知道这是一个明智的想法吗?是否有可能构建一个可靠的解决方案?
我知道我可以读取进程的原始内存,但我不是在寻找“值”,而是在寻找整个传输。我可以想象,一旦从 RTMP 消息中读取 FLV 帧并在屏幕上呈现,插件就可以释放或覆盖它,并且不会有任何内容可读取(如果我不够快)。我还假设视频的每个 block 可能存储在随机地址下,这使得它变得更加困难/不可能做到?
“查看内存”并尝试调查此问题的最佳 Linux 工具是什么?
最佳答案
即使您访问进程的内存,您也无法从该内存中提取 rtmp 流。这是因为您不知道变量或 Flash 播放器内部使用了内存的哪一部分以及 rtmp 流使用了哪一个区域。另外,我不希望 rtmp 完全存储在内存中,而一次只存储其中的一部分。
替代方案:
如果您有视频的网址,则可以使用 rtmpdump
。如果您还没有,您可以使用 wireshark
等数据包嗅探器获取 URL。
您在评论中表示您已经尝试过,但在这样做时遇到了问题。但是,我担心除了手动实现模拟 Flash 播放器行为的 rtmp 客户端之外,没有办法绕过 rtmpdump 的使用。
关于linux - Linux下直接从Flash播放器内存访问FLV剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23790005/