Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ffmpeg 如何创建解码器的完整副本?_Ffmpeg_Libavcodec_Mpeg 4_Avcodec - Fatal编程技术网

Ffmpeg 如何创建解码器的完整副本?

Ffmpeg 如何创建解码器的完整副本?,ffmpeg,libavcodec,mpeg-4,avcodec,Ffmpeg,Libavcodec,Mpeg 4,Avcodec,我正在为mpeg4视频流的自定义实现编写一个视频解码器(使用FFMPEG/AVCodec)。该视频流的特点是,它可以分割成多个“子”流,基于同一父视频流创建多个P帧。我试图解码的视频流实际上是一种“视频树”。大概是这样的: I <--P <--P <---------------------P <-------------- P <------------ P \ <--P <--P <--P \ <--P

我正在为mpeg4视频流的自定义实现编写一个视频解码器(使用FFMPEG/AVCodec)。该视频流的特点是,它可以分割成多个“子”流,基于同一父视频流创建多个P帧。我试图解码的视频流实际上是一种“视频树”。大概是这样的:

I <--P <--P <---------------------P <-------------- P <------------ P
           \ <--P <--P <--P        \ <--P <--P       \ <--P <--P 
I根据:“生成的目标编解码器上下文将是未打开的,即,您需要调用avcodec_open(),然后才能使用此AVCodecContext对视频/音频数据进行解码/编码。”

因此,为了达到你在另一个解码器中的位置,我猜你必须打开流并寻找相同的位置()

或者,您可以从一开始就并行维护多个解码器,以防以后需要分叉。如果您只需要几个并行路径,那么这可能是一个选项


或者,如果您在任何时候都只需要显示一条路径,您可以只使用一个解码器,并在本例中四处搜索,例如使用DVD菜单结构。

您是否找到过如何制作AVCODECONTEXT的深度副本?我正在解码原始实时流,因此我没有
AVFormatContext
,因此
av_seek_frame()
不起作用。一、 同样,我们也考虑了并行多个解码器,但这将是低效的。你还有别的想法吗?谢谢……你指的是什么?我要么存储整个流,要么从头开始为每条路径工作。或者,当我收到信息流时,我会尝试将其重新编码为更友好、可查找的格式,