2013-04-12 79 views
0

我正在嘗試解決一個很大的問題,但遇到了非常小的問題。我試圖在ffmpeg的幫助下讀取視頻文件中的音頻流,但是應該遍歷整個流文件的循環只運行幾次。由於其他人使用它非常相似,無法弄清楚問題是什麼。 以下是我的代碼請檢查:無法使用ffmpeg讀取音頻流

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;} 

回答

0
你可能有與庫裝卸及如何,涉及到通JNI千呼萬喚問題

。從你的症狀是什麼不知道,但如果u有沒有解決方案嘗試閱讀:

here

here