【问题标题】:Linux & C: How to set file reading priority in multi-process program while recording mp4 filesLinux & C:如何在多进程程序中设置文件读取优先级,同时录制 mp4 文件
【发布时间】:2018-04-12 13:45:20
【问题描述】:

这是一个作业,我不是在找你给我答案。我只需要有人为我指明正确的方向,也许只需要一两行示例代码。

我需要弄清楚如何在我的程序中设置录制 mp4 文件的优先级。言归正传:

我正在尝试同时从三个摄像机(1-HD 和 2 个模拟摄像机)录制,并在每次录制 60 秒后创建其 tar 文件。

所以在完成一组记录后,我将去皮这些文件。在这样做时,我只在高清摄像机中遇到了跳帧,剩下 2 个模拟摄像机很好。因此我决定为记录设置高优先级,为这些文件设置低优先级。

请给我一些设置优先级的想法,忽略跳帧。

感谢任何帮助/指导 :)

【问题讨论】:

  • 我怀疑你的问题不会通过优先级调整来解决。需要代码/设计。

标签: c ffmpeg embedded-linux mp4


【解决方案1】:

使用 Linux 中的标准循环时间共享调度程序可能很难做到这一点。一种方法是对视频编码线程使用“实时”调度程序策略,并使用标准调度程序在线程中压缩文件。见sched_setscheduler

【讨论】:

  • 不相信 - 我怀疑 OP 主要是在做 I/O。
  • 问题建议在文件归档开始之前不会丢帧,因此将视频捕获线程作为 SCHED_RR 或 SCHED_FIFO 运行将防止它们在需要处理时被切换并防止丢帧。这可能意味着归档过程缺乏处理时间,并且在下一个文件准备好归档之前没有完成,但是如果不运行实验,这是不可能的。
猜你喜欢
  • 1970-01-01
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
相关资源
最近更新 更多