gpt4 book ai didi

java - Android 和 JNI,将数据传输到 FFmpeg

转载 作者:行者123 更新时间:2023-12-01 13:30:31 26 4
gpt4 key购买 nike

我正在尝试创建一个基于 FFmpeg 的元数据检索器。由于原始 Android 应用程序资源通常只能使用文件描述符访问,因此我需要一种通过 JNI 将此数据传输到 FFmpeg 的方法。我知道 FFmpeg 支持“管道”协议(protocol):

UNIX pipe access protocol.

Allow to read and write from UNIX pipes.

The accepted syntax is:

pipe:[number]

number is the number corresponding to the file descriptor of the pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number is not specified, by default the stdout file descriptor will be used for writing, stdin for reading.

For example: cat test.wav | ffmpeg -i pipe:0

我的问题是,如何以编程方式模拟 cat test.wav | ffmpeg -i pipe:0使用 JNI 和 avformat_open_input使用FileDescriptor ?这可能吗?

最佳答案

来自AndroidFFmpeg的人项目实现了“jni://”协议(protocol)来通过 JNI 传输数据,请参阅 https://github.com/appunite/AndroidFFmpeg/blob/master/FFmpegLibrary/jni/jni-protocol.c

我不知道它是如何使用的,只是我偶然发现了该文件并看到了你的问题。我认为您可以使用相同的解决方案。

您可能想看看这篇文章:https://stackoverflow.com/a/24747137/1028256关于将 FileDescriptor 传递给 JNI

关于java - Android 和 JNI,将数据传输到 FFmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21596965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com