m0_71444013 2024-03-17 14:43 采纳率: 0%
浏览 11

ffmpeg转码 批处理,付费请人做

所有不同名字的视频文件混放在一个系统自动生成的当天的文件夹下,
一共10路摄像头可能更多,不停的录制视频,一个视频大概20分钟,录制的文件名的组成就是前面的名字 ,和后面的生成时间,按文件的的生成时间,从时间离现在最远的开始转码,这个转码只按时间顺序转,哪个文件生成的时间越早,就转哪个,实时检测这个文件夹,有新的文件就转码,重复的就不转了,然后转码透明马赛克位置固定了,都是左上角,我到时候给你发视频文件你看一下,再加随机出现几秒logo,这个logo我自己填,具体在视频哪个时间出现,最好做成随机的,出现的位置就在左下角吧,做成半透明的。
每路视频我加一个手动不转码的时间,比如上午8点到下午14点,不转码,转完的视频我想每个相同画面的放到同一个文件夹里,比如原文件叫 {jdhduhdjdh545484664}_2024012523251212 把前面的名字改一下 新的文件夹就叫B1 里面的文件前面的名字也是B1_日期 后面的日期不改 。
如果我想设定每个摄像头对应的转码后的文件夹里的文件数量800个 转码后新文件夹里文件少于800个就不用管, 超过800个 按日期旧的全删
这个文件名前半部分,和最后改成什么名,还有转码后的文件夹里面文件的数量我自己填一下。
按名字转码的话,每个画面按日期最后一个不转码,因为最后一个还在录制,文件转不了码。

我之前找人用python做了一个,他做那个复制挺快的,到最后比如就要800个文件,多了30个,就是830个,然后他按日期最老的那30个删掉,再回到800个这个时间就特别慢,一个文件夹要20分钟,那我6个文件夹就120分钟,要是一个文件夹2000个文件那就更久了。

  • 写回答

3条回答 默认 最新

  • 关注

    m0_71444013 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    根据你的需求,你想要一个批处理脚本来实现以下功能:

    1. 监测一个文件夹,当有新的视频文件生成时进行转码。
    2. 转码的顺序按照文件生成时间,从时间离现在最远的开始转码。
    3. 转码加入透明马赛克和随机出现的Logo,并将转码后的文件保存到指定的文件夹。
    4. 转码完成后,将相同画面的视频文件放到同一个文件夹里。
    5. 每个摄像头对应的转码后的文件夹里的文件数量不能超过800个,超过部分按照日期旧的全删。
    6. 不在指定时间段内的视频文件不进行转码。

    针对以上需求,你可以按照以下步骤进行实现:

    1. 使用FFmpeg来进行视频转码。在批处理脚本中调用FFmpeg命令来实现视频转码功能。你可以使用命令行参数来自定义转码参数,如透明马赛克、Logo添加等。

    2. 使用Python来编写监测文件夹和转码的逻辑。你可以使用python的模块如ossubprocess来实现文件夹监测和调用FFmpeg进行转码。

    3. **设计数据结构来存储每个摄像头对应的转码后的文件夹信息以及文件数量。**可以使用字典或者自定义类来存储这些信息。

    4. 设计一个循环,不断监测文件夹中是否有新的视频文件生成。当有新的视频文件生成时,检查文件的生成时间,只处理生成时间最早的视频文件。

    5. 在转码之前,检查文件的名称是否已经存在。如果存在则跳过不进行转码。可以使用正则表达式来匹配文件名是否符合规定的格式。

    6. 进行视频转码,并加入透明马赛克和随机出现的Logo。

    7. 将转码后的文件根据相同画面放到同一个文件夹中去。可以使用文件名中的部分字符串来进行比较和判断。

    8. 在转码后的文件夹中,判断文件数量是否超过800个。如果超过,则按照日期旧的删掉文件,直到数量不超过800个。

    9. 设定每个摄像头对应的转码后的文件夹里的文件数量。

    10. 最后,确保脚本能够长时间稳定运行,可以使用定时任务来定期执行脚本或者设置循环延时来检测文件夹。可以使用Python的time模块来实现。

    请注意,以上步骤描述的是一个整体的思路和实现方案,具体的实现细节和代码要根据你的具体情况进行修改和调整。需要根据文件处理速度和转码时间来评估处理上述逻辑的效率,可以采取多线程或者并发处理来提高处理速度,以达到你的要求。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月17日
  • 创建了问题 3月17日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?