0

I am trying to solve a big problem but stuck with very small issue. I am trying to read audio streams inside a video file with the help of ffmpeg but the loop that should traverse the whole file of streams only runs couple of times. Can not figure out what is the issue as others have used it very similarly. Following is my code please check:

JNIEXPORT jint JNICALL Java_ru_dzakhov_ffmpeg_test_MainActivity_logFileInfo
    (JNIEnv * env,
     jobject this,
     jstring filename
    )
{

AVFormatContext *pFormatCtx;
int             i,j,k, videoStream, audioStream;
AVCodecContext  *pCodecCtx; 
AVCodec         *pCodec;
AVFrame         *pFrame; 
AVPacket        packet;
int             frameFinished;
float           aspect_ratio;
AVCodecContext  *aCodecCtx;
AVCodec         *aCodec;
//uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
j=0;

av_register_all();
char *str = (*env)->GetStringUTFChars(env, filename, 0);
 LOGI(str);
// Open video file
if(av_open_input_file(&pFormatCtx, str, NULL, 0, NULL)!=0)
    ;

// Retrieve stream information
if(av_find_stream_info(pFormatCtx)<0)
    ;

 LOGI("Separating");
// Find the first video stream  
videoStream=-1;
audioStream=-1;

for(i=0; i<&pFormatCtx->nb_streams; i++) {

    if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO)
    {
        LOGI("Audio Stream");
        audioStream=i;
        }
}
av_write_header(pFormatCtx);
if(videoStream==-1)
     LOGI("Video stream is -1");    


if(audioStream==-1)
     LOGI("Audio stream is -1");

return i;}
4

1 回答 1

0

您可能遇到与库加载和卸载相关的问题,以及这与通过 jni 的重复调用有何关系。不确定您的症状是什么,但如果您没有解决方案,请尝试阅读:

这里

这里

于 2013-04-14T19:57:47.297 回答