gpt4 book ai didi

ffmpeg - 从 libavformat 获取 TS 数据包到缓冲区

转载 作者:行者123 更新时间:2023-12-04 23:17:35 26 4
gpt4 key购买 nike

我想捕获视频,将其压缩并复用为 mpeg2 ts。使用 ffmpeg 库,所有这些都非常简单,但我想做的不是将其写入文件,而是在缓冲区中捕获 ts 数据包并以其他方式使用此流。有没有一种简单的方法可以做到这一点?

为了立即将编码帧写入文件,我使用 av_interleaved_write_frame(oc, &pkt)。 OC 是定义了文件名和格式的输出上下文。 pkt 是一个包含压缩帧的 AVPacket。 av_interlaced_write_frame 正在执行复用和写入文件。

我最终想要实现的是将相同的 ts 流写入多个文件,并开始和停止写入彼此独立的不同文件。为每个流启动一个新的复用器似乎效率低下,因为 TS 流不应该需要任何标题或正确的结尾才能正确播放(如果我读到的内容是正确的)

我有点迷失在 ffmpeg 代码中寻找好的例子,而且这些库没有很好的文档记录。对此主题的任何意见表示赞赏。谢谢!

最佳答案

终于让它工作了。一种方法是使用 avio_alloc_context 设置回调,您可以在其中对流执行您想要的操作。这个人有一个很好的例子:

https://github.com/EvilTengil/kinect-streamer/blob/master/src/kstreamer/ffv1_depth_encoder.cpp

关于ffmpeg - 从 libavformat 获取 TS 数据包到缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10579719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com