如何将相同的AVPacket写入多个输出

时间:2017-07-19 08:54:18

标签: ffmpeg libav

我想使用libav实现某种tee函数。我从文件中读取数据包,并希望将它们转发到几个输出文件。 到目前为止,由于av_interleaved_write_frame释放了数据包,我这样做了:

AVPacket pkt;
// Stuff to read packets into pkt

for (ic = 0; ic < nb_outputs; ic++) {
  AVPacket pkt2;
  av_copy_packet(&pkt2,&pkt);
  av_interleaved_write_frame(ofmt_ctx[ic], &pkt2);
}

我想知道这是否是最佳方式? 复制数据包似乎有点矫枉过正。我尝试使用av​​_packet_ref但它失败了。

0 个答案:

没有答案