文章预览
随着Android系统对文件访问权限的收紧,很多时候,不能再通过文件路径来访问文件。Android上使用FFmpeg,具体而言,使用libavformat访问本地文件,如何实现呢? 0、最简单且最低效的方式 当文件不能直接访问时,可以通过Android Java的API,把文件拷贝到App私有目录,再让FFmpeg访问拷贝后的文件。这种处理方式最简单、效率最低,but it works。 1、avio callback AVIOContext * avio_alloc_context ( unsigned char *buffer, int buffer_size, int write_flag, void *opaque, int (*read_packet)( void *opaque, uint8_t *buf, int buf_size), int (*write_packet)( void *opaque, const uint8_t *buf, int buf_size), int64_t (*seek)( void *opaque, int64_t offset, int whence)) ; 通过callback方式实现自定义IO,传递给avformat,可以实现只
………………………………