利用FFmpeg和管道(pipe),解决非URL和非文件的输入形式
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 利用FFmpeg和管道(pipe),解决非URL和非文件的输入形式 问题描述:利用FFmpeg来解码,但是输入方式不是URL,也不是文件系统中的文件,而是内存中的buffer。 解决此问题有两个思路,首先明确一点,libavformat中有几个类,有URLProtocol(虽然叫URLxxx,但是不仅仅是URL的,它可是掌管了所有的输入方式),AVOutputFormat(有muxer也有demuxer),AVInputFormat(有muxer也有demuxer)。 它们对应实例可以举几个例子: URLProtocol::ff_pipe_protocol、ff_http_protocol、ff_file_protocol。。。 AVOutputFormat:ff_mpegts_demuxer、ff_mp3_demuxer。。。 AVInputFormat:ff_mpegts_demuxer、ff_mp3_demuxer。。。 然后来说int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options);函数,它的filename参数只接受URL或者文件名