相关疑难解决方法(0)

想要ffmpeg编码样本?

我发现本教程关于ffmpeg我没有得到的是如何编码视频.

可以任何一个,请提供一个教程..解释为什么?(不,我不得到这个官方的一个,但我很乐意看到更多的评论)

c c++ video encoding ffmpeg

8
推荐指数
1
解决办法
1万
查看次数

FFmpeg:无法在Android Q上使用文件描述符进行搜索

考虑到公共文件路径通常在Android Q中不可用的事实,我试图找出如何使FFmpeg音频解码器与文件描述符一起工作,而不将文件复制到应用程序的私有目录中。

我们可以使用Android Q隐私更改中所述的方法轻松获取文件描述符,并且可以使用管道协议打开文件描述符,如将本地fd int从可打开的URI传递给FFMPEG中所述。但是,使用找不到结果,av_seek_frame并且使用的duration成员也不提供持续时间AVFormatContext

有没有办法使用FFmpeg使用文件描述符进行搜索并检索持续时间?

android ffmpeg pipe file-descriptor android-10.0

8
推荐指数
1
解决办法
167
查看次数

如何在Android中使用JNI将资产FileDescriptor正确传递给FFmpeg

我正在尝试使用FFmpeg,JNI和Java FileDescriptor在Android中检索元数据,但它并没有"正常工作".我知道FFmpeg支持管道协议,所以我试图以cat test.mp3 | ffmpeg i pipe:0编程方式进行搜索:" ".我使用以下代码从与Android应用程序捆绑在一起的资产中获取FileDescriptor:

FileDescriptor fd = getContext().getAssets().openFd("test.mp3").getFileDescriptor();
setDataSource(fd, 0, 0x7ffffffffffffffL); // native function, shown below
Run Code Online (Sandbox Code Playgroud)

然后,在我的本机(In C++)代码中,我通过调用以下方式获取FileDescriptor:

static void wseemann_media_FFmpegMediaMetadataRetriever_setDataSource(JNIEnv *env, jobject thiz, jobject fileDescriptor, jlong offset, jlong length)
{
    //...

    int fd = jniGetFDFromFileDescriptor(env, fileDescriptor); // function contents show below

    //...
}

// function contents
static int jniGetFDFromFileDescriptor(JNIEnv * env, jobject fileDescriptor) {
    jint fd = -1;
    jclass fdClass = env->FindClass("java/io/FileDescriptor");

    if (fdClass != NULL) {
        jfieldID fdClassDescriptorFieldID = …
Run Code Online (Sandbox Code Playgroud)

java-native-interface android metadata ffmpeg android-ndk

5
推荐指数
2
解决办法
4828
查看次数