Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo utilizar ffmpeg / libavcodec / libstagefright

Sólo tengo una pregunta acerca de cómo utilizar ffmpeg/libavcodec/libstagfright.cpp : Intento a avcodec_open2(st->codec, codec) cuando tengo uso ffmpeg para establecer codec->id como CODEC_ID_H264,codec->name como libstagefright_h264 , Eso significa que abriré AVCodec ff_libstagefright_h264_decoder .

Pero cuando Stagefright_init->OMXCodec::Create->configureCodec-> initOutputFormat(meta) , el proceso acaba de salir! ¡Es un bazinga!

Sabía que meta es Metadata, sus datos provienen de codec->extradata , y aquí, significa sps y pps, ¿no?

¿Cómo puedo usar libstagefright éxito en ffmpeg? ¿Puede alguien darme un ejemplo?

  • Transmisión en directo del reproductor RTMP / RTSP sin utilizar la visualización web (servidor WOWZA) en Android
  • Hardware acelerado FFmpeg en android?
  • FFmpeg - no puede encontrar ExecuteBinaryResponseHandler - Android / Java
  • Cómo transmitir a ffserver desde android
  • Captura de cámara Android con FFmpeg
  • FFMPEG Fade in y Fade out para superposición
  • Combinar una imagen en un archivo de audio y hacer un archivo de vídeo en android mediante programación
  • Error de "ffmpeg tiene relocalizaciones de texto" en Android
  • 2 Solutions collect form web for “Cómo utilizar ffmpeg / libavcodec / libstagefright”

    Funciona en ICS4.0.3, Moto XT910, FFmpeg 0.7

    Yo uso extradata para la tienda MediaFileName, a continuación, obtener metadatos de los códigos: DataSource::RegisterDefaultSniffers();
    sp source ;
    source = createSource((char*)MeidaFileName);
    if(source==NULL){
    return -1 ;
    }
    meta = source->getFormat();
    if(!meta->findData(kKeyAVCC, &type, &data, &data_size))
    {
    return -1 ;
    }
    DataSource::RegisterDefaultSniffers();
    sp source ;
    source = createSource((char*)MeidaFileName);
    if(source==NULL){
    return -1 ;
    }
    meta = source->getFormat();
    if(!meta->findData(kKeyAVCC, &type, &data, &data_size))
    {
    return -1 ;
    }

      meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_VIDEO_AVC); 

    Entonces usted puede OMX :: crear (hay alguna diferencia para Android 2.3 e ICS)

    Realmente estoy trabajando en proporcionar stagefright a mi biblioteca ffmpeg en Android. Hice algunos cambios en libstagefright.cpp original de ffmpeg / libav pero todavía no es estable. Después de estabilizarlo, crearé solicitud de extracción para el equipo ffmpeg / libav. Usted puede mirar alrededor en mi proyecto : en "hwaccel" rama.

    Está disponible en el directorio AndroidFFmpeg / FFmpegLibrary / jni / ffstagefright.cpp .

    Para usar esta librería tienes que llamar a los métodos estándar de ffmpeg y abrirlos del códec h264 estándar codec libstagefright_h264:

     AVCodec *codec = avcodec_find_decoder_by_name("libstagefright_h264"); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.