gpt4 book ai didi

android - AVCodecContex 在android中为宽度和高度返回零

转载 作者:行者123 更新时间:2023-12-04 23:00:42 24 4
gpt4 key购买 nike

不知道我在下面的代码中犯了什么错误。我正在尝试在 android 中使用 ffmpeg 0.11 和 SDL2.0。

问题:
为什么 CodecContext 的宽度和高度总是给我零?..

int main(int argc, char *argv[])
{

int flags;
flags = SDL_INIT_VIDEO | SDL_INIT_TIMER;

if (SDL_Init (flags)) {
LOGD ("Could not intialize Video for SDL: %s \n", SDL_GetError());
}
else
LOGD (" SUCCESS: SDL_Init ");

// ffmpeg Register all services..
ffmpeg_register_all ();


pFrame = avcodec_alloc_frame ();
context = avformat_alloc_context();

err = avformat_open_input (&context, "rtsp:ip:port", NULL, NULL);
if ( err < 0) {
__android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "Unable to open rtsp... ");

return -1;
}

for (i = 0; i < context->nb_streams; i++)
{
// Find the Decoder.
codec = avcodec_find_decoder(context->streams[i]->codec->codec_id);
if (codec->type == AVMEDIA_TYPE_VIDEO ) {
__android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "Found Video Streaming.. ");
videoStreamIndex = i;

}
}

// Play RTSP
av_read_play(context);

// Get Codec Context.
pCodecCtx = context->streams[videoStreamIndex]->codec;
if ( pCodecCtx == NULL )
__android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "CodecCtx is NULL>>> ");
else
__android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "CodecCtx is <<<OK>>> ");


//Find the Decoder.
pCodec = avcodec_find_decoder (pCodecCtx->codec_id);
avcodec_open2 (pCodecCtx, pCodec, NULL);


int w = pCodecCtx->width; // Why me getting 0 ?
int h = pCodecCtx->height;

window = SDL_CreateWindow ("Test ffmpeg",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, w, h, SDL_WINDOW_SHOWN|SDL_WINDOW_ALLOW_HIGHDPI);
// What this HIGHDPI Means ??

if ( window != NULL )
{
LOGD (" WINDOW CREATED.. , create Renderer ..");
renderer = SDL_CreateRenderer (window, -1, 0);
}
else
{
LOGD (" Invalid SDL Window ");
}
__android_log_print(ANDROID_LOG_DEBUG, "ffmpegguard", "Width and Height of PCodeccCtx.. %d .. %d " , w, h);
return 0;
}

最佳答案

在代码中添加 avformat_stream_info() 函数,而不是显示高度和宽度

关于android - AVCodecContex 在android中为宽度和高度返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21558538/

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