ffmpeg - 如何正确中止 FFmpeg 上的 av_seek_frame?
问题描述
通常,您不会在意中止av_seek_frame,因为它在本地文件上会非常快。但是,在我的情况下,我使用自定义AVIOContext进行带有自定义读取/搜索功能的洪流流,并且我无法中止单个搜索请求!
我已经尝试过中断回调(它们根本不会被调用),一些超时(rw_timeout/timeout 等)但是通过检查 FFmpeg 的代码根本没有找到任何东西。我最后的机会是尝试在读取/查找函数上返回一个错误(我尝试过 AVERROR_EXIT),这会导致更多问题(内存泄漏)。
主要问题是他们需要重新同步(1 级)的Matroska格式,并且他们正在尝试扫描整个文件。
不幸的是,我使用 C# .NET 和 FFmpeg.Autogen 绑定,这意味着我没有低级访问权限。我的解决方法是重新打开整个格式上下文以防寻求中止(以确保播放器至少可以继续播放)
希望你能给我一个提示!
(顺便说一下,支持一些 http/hls 网络格式的中断回调)
解决方案
推荐阅读
- android - 如何使用 Viewpager2 和 Mediator 选项卡布局动态添加和删除片段页面
- python - 如何在运行时间之间从列表中打印数字在python中输入两个数字
- apache-spark - 基本上使用哪个调度程序在 Google Cloud Dataproc 集群中提交 Spark 作业?
- java - SQLite 保存重复项
- node-red - 如何在 Node-RED 中指定 node-red-node-email 的标准
- java - JSoup 在网页上看不到表格
- html - 内联 SVG 仅缩放到 Google Chrome 中的父容器
- python - Python Conda终端没有响应
- datetime - 将文本时间戳转换为谷歌表格中的正确日期和时间
- java - 使用graphql java kickstart的spring boot中的联合类型错误