deepfacelab中文网

 找回密码
 立即注册(仅限QQ邮箱)
查看: 691|回复: 2

刚才有人问怎么多线程切割视频

[复制链接]

17

主题

134

帖子

867

积分

高级丹师

Rank: 5Rank: 5

积分
867
 楼主| 发表于 2022-11-12 21:12:31 | 显示全部楼层 |阅读模式
星级打分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN  参与人数:0  我的评分:未评
他就是fmpeg切割视频为图序列, 这么简单的,  


你看他代码啊

打开 你的那个  extract images from video data_src.bat


@echo off
call _internal\setenv.bat

mkdir "%WORKSPACE%\data_src" 2>nul

"%PYTHON_EXECUTABLE%" "%DFL_ROOT%\main.py" videoed extract-video ^
    --input-file "%WORKSPACE%\data_src.*" ^
    --output-dir "%WORKSPACE%\data_src"

pause


找到   main.py    extract-video 看他     from mainscripts import VideoEd


你打开  [size=13.0667px]mainscripts    就是你  这个切割视频为帧图的   
[size=13.0667px]

[size=13.0667px]

[size=13.0667px]

[size=13.0667px]

[size=13.0667px]




首先  ffmpeg.probe获取视频信息,找到总帧数, 然后python  假如用 for   

executor = ThreadPoolExecutor(max_workers=10)  假设你10个并行,

他切割视频的就是这个函数
extract_video(input_file, output_dir, output_ext=None, fps=None):

把里面的 信息重新给我定义一个函数  

注意是 job. 这个部分的, 为了 并行,比方定义个函数  extract_videos  
比方说  
def extract_videos ():


job = ffmpeg.input(str(input_file_path))

kwargs = {'pix_fmt': 'rgb24'}
if fps != 0:
    kwargs.update ({'r':str(fps)})

if output_ext == 'jpg':
    kwargs.update ({'q:v':'2'}) #highest quality for jpg

job = job.output( str (output_path / ('%5d.'+output_ext)), **kwargs )

try:
    job = job.run()
except:
    io.log_err ("ffmpeg fail, job commandline:" + str(job.compile()) )


for t in range(总帧数):
executor.submit(main, extract_videos  )
executor.shutdown()
这样就多线程了。。。





[size=13.0667px]这么简单的  我不晓得 有撒子好说的。  我上面只是简单的 说下   多线程的 方法,    当然 为了 防止异常 我们都不会那么写并行代码。 我就是举个简单例子哈。






回复

使用道具 举报

17

主题

134

帖子

867

积分

高级丹师

Rank: 5Rank: 5

积分
867
 楼主| 发表于 2022-11-12 21:16:38 | 显示全部楼层
据说   ffmpeg本身有-thread 多线程参数, 我不晓得, 毕竟对这个没多大兴趣。。假如真有的话 直接 在他函数里面 增加一个  变量  job =  ffmpeg.input('-thread  10') 就可以了。。 具体效果  没测试过 不晓得
回复 支持 反对

使用道具 举报

11

主题

685

帖子

4101

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
4101
发表于 2022-11-12 23:46:23 | 显示全部楼层
什么意思?可以同时切多个dst视频吗
回复 支持 反对

使用道具 举报

QQ|Archiver|手机版|deepfacelab中文网 |网站地图

GMT+8, 2024-9-22 20:24 , Processed in 0.084358 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表