• 大小: 3.94MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-08
  • 语言: Java
  • 标签: ffmpegh.264  

资源简介

一直苦于没办法用JAVA解码H.264,而且FMJ什么的非常难用,终于发现这个FFMPEG-JAVA既可以解决问题,库函数什么又和FFMPEG一致的类库了!而且连例程都非常相拟。

资源截图

代码片段和文件信息

// avcodec_sample.0.4.9.cpp
// from http://www.inb.uni-luebeck.de/~boehme/avcodec_sample.0.4.9.cpp
// A small sample program that shows how to use libavformat and libavcodec to
// read video from a file.
//
// This version is for the 0.4.9-pre1 release of ffmpeg. This release adds the
// av_read_frame() API call which simplifies the reading of video frames 
// considerably. 
//
// Use
//
// g++ -o avcodec_sample.0.4.9 avcodec_sample.0.4.9.cpp -lavformat -lavcodec \
//     -lz
//
// to build (assuming libavformat and libavcodec are correctly installed on
// your system).
//
// Run using
//
// avcodec_sample.0.4.9 myvideofile.mpg
//
// to write the first five frames from “myvideofile.mpg“ to disk in PPM
// format.

extern “C“ {
#include 
#include 
}

#include 

void Saveframe(AVframe *pframe int width int height int iframe)
{
    FILE *pFile;
    char szFilename[32];
    int  y;

    // Open file
    sprintf(szFilename “frame%d.ppm“ iframe);
    pFile=fopen(szFilename “wb“);
    if(pFile==NULL)
        return;

    // Write header
    fprintf(pFile “P6\n%d %d\n255\n“ width height);

    // Write pixel data
    for(y=0; y        fwrite(pframe->data[0]+y*pframe->linesize[0] 1 width*3 pFile);

    // Close file
    fclose(pFile);
}

int main(int argc char *argv[])
{
    AVFormatContext *pFormatCtx;
    int             i videoStream;
    AVCodecContext  *pCodecCtx;
    AVCodec         *pCodec;
    AVframe         *pframe; 
    AVframe         *pframeRGB;
    AVPacket        packet;
    int             frameFinished;
    int             numBytes;
    uint8_t         *buffer;

    // Register all formats and codecs
    av_register_all();

    // Open video file
    if(av_open_input_file(&pFormatCtx argv[1] NULL 0 NULL)!=0)
        return -1; // Couldn‘t open file

    // Retrieve stream information
    if(av_find_stream_info(pFormatCtx)<0)
        return -1; // Couldn‘t find stream information

    // Dump information about file onto standard error
    dump_format(pFormatCtx 0 argv[1] false);

    // Find the first video stream
    videoStream=-1;
    for(i=0; inb_streams; i++)
        if(pFormatCtx->streams[i]->codec->codec_type==CODEC_TYPE_VIDEO)
        {
            videoStream=i;
            break;
        }
    if(videoStream==-1)
        return -1; // Didn‘t find a video stream

printf(“Video stream index: %d\n“ videoStream);

    // Get a pointer to the codec context for the video stream
    pCodecCtx=pFormatCtx->streams[videoStream]->codec;

printf(“Codec id: %d\n“ pCodecCtx->codec_id);

    // Find the decoder for the video stream
    pCodec=avcodec_find_decoder(pCodecCtx->codec_id);
    if(pCodec==NULL)
        return -1; // Codec not found

    // Open codec
    if(avcodec_open(pCodecCtx pCodec)<0)
        return -1; // Could not open codec

#if 0
    // Hack to correct wrong frame rates that seem to be generated by some 
    // codecs
    if(pCodecCtx->fram

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7639  2007-08-29 05:25  ffmpeg-java-20070916-0351\LICENSE

     文件       1539  2007-09-16 03:51  ffmpeg-java-20070916-0351\README

     文件       5391  2007-08-29 05:25  ffmpeg-java-20070916-0351\build.xml

     文件      64156  2007-09-16 03:51  ffmpeg-java-20070916-0351\ffmpeg-java.jar

     文件        543  2007-09-16 03:51  ffmpeg-java-20070916-0351\version-history.txt

     文件      92166  2007-08-29 05:25  ffmpeg-java-20070916-0351\ffmpeg_headers\libavcodec\avcodec.h

     文件       2999  2007-08-29 05:25  ffmpeg-java-20070916-0351\ffmpeg_headers\libavcodec\opt.h

     文件      31943  2007-08-29 05:25  ffmpeg-java-20070916-0351\ffmpeg_headers\libavformat\avformat.h

     文件       9132  2007-08-29 05:25  ffmpeg-java-20070916-0351\ffmpeg_headers\libavformat\avio.h

     文件       6036  2007-08-29 05:25  ffmpeg-java-20070916-0351\ffmpeg_headers\libavutil\avutil.h

     文件       3599  2007-08-29 05:25  ffmpeg-java-20070916-0351\ffmpeg_headers\libavutil\log.h

     文件       1979  2007-08-29 05:25  ffmpeg-java-20070916-0351\ffmpeg_headers\libavutil\mem.h

     文件       2943  2007-08-29 05:25  ffmpeg-java-20070916-0351\ffmpeg_headers\libavutil\rational.h

     文件     268395  2007-08-29 05:25  ffmpeg-java-20070916-0351\lib\jna.jar

     文件       4917  2007-08-29 05:25  ffmpeg-java-20070916-0351\native\avcodec_sample.0.4.9.cpp

     文件        100  2007-08-29 05:25  ffmpeg-java-20070916-0351\src\overview.html

     文件     135762  2007-09-16 03:51  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\AVCodecLibrary.java

     文件      40486  2007-09-16 03:51  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\AVFormatLibrary.java

     文件       1200  2007-09-16 03:51  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\AVUtilLibrary.java

     文件      11131  2007-08-29 05:25  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\FFMPEGLibrary.java

     文件       1130  2007-08-29 05:25  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\custom_protocol\CallbackURLProtocolHandler.java

     文件       6021  2007-08-29 05:25  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\custom_protocol\CallbackURLProtocolMgr.java

     文件       3554  2007-08-29 05:25  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\custom_protocol\FileCallbackURLProtocolHandler.java

     文件       7017  2007-08-29 05:25  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\example\AVCodecSample.java

     文件       7052  2013-06-11 21:20  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\example\PlayerExample.java

     文件       7440  2007-09-16 03:51  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\example\URLProtocolTest.java

     文件       2544  2007-09-16 03:51  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\gui\Imageframe.java

     文件       1380  2007-08-29 05:25  ffmpeg-java-20070916-0351\src\net\sf\ffmpeg_java\util\frameDataToImage.java

     文件        401  2013-05-13 09:56  ffmpeg-java-20070916-0351\.project

     文件        100  2007-08-29 05:25  ffmpeg-java-20070916-0351\bin\overview.html

............此处省略87个文件信息

评论

共有 条评论

相关资源