VideoFileClip 切割视频

server/2024/9/23 3:45:42/

切换视频代码

video = VideoFileClip(video_fn)
video_dir = video_fn[:-4]+'_seg'
# video_base_name = os.path.splitext(os.path.basename(video_fn))[0]
# video_dir = os.path.join(output_dir, video_base_name)
os.makedirs(video_dir, exist_ok=True)
for start, end in scenes:cropped_video = video.subclip(start / video.fps, end / video.fps)output_path = f"{video_dir}/{start}_{end}.mp4"cropped_video.write_videofile(output_path, codec='libx264',audio=False)cropped_video.close()
video.close()

报错:

File "F:\project\qiege\TransNetV2-SBD-Visualize-master\transnetv2_demo.py", line 100, in predict_video cropped_video.write_videofile(output_path, codec='libx264') File "<decorator-gen-55>", line 2, in write_videofile File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration return f(clip, *a, **k) File "<decorator-gen-54>", line 2, in write_videofile File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\decorators.py", line 135, in use_clip_fps_by_default return f(clip, *new_a, **new_kw) File "<decorator-gen-53>", line 2, in write_videofile File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\decorators.py", line 22, in convert_masks_to_RGB return f(clip, *a, **k) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\video\VideoClip.py", line 293, in write_videofile self.audio.write_audiofile(audiofile, audio_fps, File "<decorator-gen-45>", line 2, in write_audiofile File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration return f(clip, *a, **k) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\audio\AudioClip.py", line 206, in write_audiofile return ffmpeg_audiowrite(self, filename, fps, nbytes, buffersize, File "<decorator-gen-9>", line 2, in ffmpeg_audiowrite File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration return f(clip, *a, **k) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\audio\io\ffmpeg_audiowriter.py", line 166, in ffmpeg_audiowrite for chunk in clip.iter_chunks(chunksize=buffersize, File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\audio\AudioClip.py", line 85, in iter_chunks yield self.to_soundarray(tt, nbytes=nbytes, quantize=quantize, File "<decorator-gen-44>", line 2, in to_soundarray File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration return f(clip, *a, **k) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\audio\AudioClip.py", line 127, in to_soundarray snd_array = self.get_frame(tt) File "<decorator-gen-11>", line 2, in get_frame File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\decorators.py", line 89, in wrapper return f(*new_a, **new_kw) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\Clip.py", line 93, in get_frame return self.make_frame(t) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\Clip.py", line 136, in <lambda> newclip = self.set_make_frame(lambda t: fun(self.get_frame, t)) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\Clip.py", line 187, in <lambda> return self.fl(lambda gf, t: gf(t_func(t)), apply_to, File "<decorator-gen-11>", line 2, in get_frame File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\decorators.py", line 89, in wrapper return f(*new_a, **new_kw) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\Clip.py", line 93, in get_frame return self.make_frame(t) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\audio\io\AudioFileClip.py", line 77, in <lambda> self.make_frame = lambda t: self.reader.get_frame(t) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\audio\io\readers.py", line 186, in get_frame self.buffer_around(fr_max) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\audio\io\readers.py", line 240, in buffer_around array = self.read_chunk(chunksize) File "D:\ProgramData\miniconda3\envs\py310\lib\site-packages\moviepy\audio\io\readers.py", line 113, in read_chunk s = self.proc.stdout.read(L) AttributeError: 'NoneType' object has no attribute 'stdout' [h264 @ 000001d994450580] Invalid NAL unit size (12042 > 10349). [h264 @ 000001d994450580] Error splitting the input into NAL units. [mov,mp4,m4a,3gp,3g2,mj2 @ 000001d6b1977480] stream 1, offset 0x2e90ad: partial file [mov,mp4,m4a,3gp,3g2,mj2 @ 000001d6b1977480] stream 0, offset 0x2e9157: partial file 

解决方法:

audio=False

代码:

cropped_video.write_videofile(output_path, codec='libx264',audio=False)


http://www.ppmy.cn/server/120103.html

相关文章

程序员工作中经常使用的C/C++开源库

Bundle 项目地址&#xff1a;GitHub - r-lyeh-archived/bundle: :package: Bundle, an embeddable compression library: DEFLATE, LZMA, LZIP, BZIP2, ZPAQ, LZ4, ZSTD, BROTLI, BSC, CSC, BCM, MCM, ZMOLLY, ZLING, TANGELO, SHRINKER, CRUSH, LZJB and SHOCO streams in a …

istio中serviceentry结合egressgateway的使用

假设有一个外部服务&#xff0c;外部服务ip为&#xff1a;10.10.102.90&#xff0c;其中32033为v1版本&#xff0c;32034为v2版本。 现在需要把这个服务引入到istio中&#xff0c;并且需要配置所有访问该服务的流量都通过egressgateway转发出去。 serviceentry apiVersion: n…

Java项目: 基于SpringBoot+mybatis+maven旅游管理系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven旅游管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…

TiDB 中的自增主键有哪些使用限制,应该如何避免?

大家好&#xff0c;我是V 哥&#xff0c;在TiDB中使用自增主键时&#xff0c;确实存在一些限制和潜在的热点问题&#xff0c;今天的文章来聊一聊 TiDB中的自增主键要怎么做。 以下是一些使用限制和如何避免它们的方法&#xff1a; 自增主键的限制&#xff1a; 必须在主键或唯一…

网络丢包定位记录(二)

网卡驱动丢包 查看&#xff1a;ifconfig eth1/eth0 等接口 1.RX errors: 表示总的收包的错误数量&#xff0c;还包括too-long-frames错误&#xff0c;Ring Buffer 溢出错误&#xff0c;crc 校验错误&#xff0c;帧同步错误&#xff0c;fifo overruns 以及 missed pkg 等等。 …

Hugging Face NLP课程学习记录 - 0. 安装transformers库 1. Transformer 模型

Hugging Face NLP课程学习记录 - 0. 安装transformers库 & 1. Transformer 模型 说明&#xff1a; 首次发表日期&#xff1a;2024-09-14官网&#xff1a; https://huggingface.co/learn/nlp-course/zh-CN/chapter1关于&#xff1a; 阅读并记录一下&#xff0c;只保留重点…

java和kotlin版本对照表

Java 和 Kotlin 是两种广泛使用的编程语言&#xff0c;特别是在 Android 开发领域。虽然它们有不同的语法和特性&#xff0c;但它们在很多方面是可以互操作的&#xff0c;尤其是在同一个项目中使用时。了解 Java 和 Kotlin 的版本对应关系可以帮助开发者更好地进行跨语言开发和…

React【1】【ref常用法】

文章目录 前言用途1. 储存2. 储存dom句柄ref 前言 react组件每次调用setState的时候都会重新执行函数组件或者class组件 用途 1. 储存 每次调用setState时&#xff0c;组件函数都会重新执行。下面这种情况点击提交后&#xff0c;再点击取消&#xff0c;会发现定时器trimId1仍…