首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用moviepy包(Python)发布

使用moviepy包(Python)发布
EN

Stack Overflow用户
提问于 2020-09-16 11:20:42
回答 1查看 228关注 0票数 0

我正在使用ffmpeg_extract_subclip函数从电影处理视频文件。但是,我得到的视频剪辑并不是我设置的开始时间和结束时间之间的相同长度。例如,编写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip

clip=clip_filename
cutclip="cutvideo.avi"
ffmpeg_extract_subclip(clip_filename, 0, 10, targetname=cutclip)

我得到一个长度为10,03或类似的视频(就帧计数而言,我得到602帧,而不是确切的600)。有什么方法可以得到更精确的输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-16 12:38:23

嗯……我会把this答案和ffmpeg_extract_subclip(https://zulko.github.io/moviepy/_modules/moviepy/video/io/ffmpeg_tools.html#ffmpeg_extract_subclip)的实际实现结合起来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def ffmpeg_extract_subclip(filename, t1, t2, targetname=None):
        """ Makes a new video file playing video file ``filename`` between
        the times ``t1`` and ``t2``. """
    name, ext = os.path.splitext(filename)
    if not targetname:
        T1, T2 = [int(1000*t) for t in [t1, t2]]
        targetname = "%sSUB%d_%d.%s" % (name, T1, T2, ext)
    
    cmd = [get_setting("FFMPEG_BINARY"),"-y",
           "-ss", "%0.2f"%t1,
           "-i", filename,
           "-t", "%0.2f"%(t2-t1),
           "-map", "0", "-vcodec", "copy", "-acodec", "copy", targetname]
    
    subprocess_call(cmd)

因此,如您所见,库是相当无状态的,因此可以很容易地扩展:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def ffmpeg_extract_subclip_precisely(filename, t1, t2, targetname=None):
    """ Makes a new video file playing video file ``filename`` between
        the times ``t1`` and ``t2``. """
    name, ext = os.path.splitext(filename)
    if not targetname:
        T1, T2 = [int(1000*t) for t in [t1, t2]]
        targetname = "%sSUB%d_%d.%s" % (name, T1, T2, ext)

    cmd = [get_setting("FFMPEG_BINARY"), "-i", filename,
           "-force_key_frames", "{}:{}".format(t1,t2), "temp_out.mp4"]

    subprocess_call(cmd)
    
    cmd = [get_setting("FFMPEG_BINARY"),"-y",
           "-ss", "%0.2f"%t1,
           "-i", "temp_out.mp4",
           "-t", "%0.2f"%(t2-t1),
           "-map", "0", "-vcodec", "copy", "-acodec", "copy", targetname]
    
    subprocess_call(cmd)

顺便说一句,我认为只要有可能,你应该以毫秒的精度指定时间。

请注意,上面的代码是未经测试的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63926682

复制
相关文章
python使用moviepy模块对视频进行操作
前段时间需要对多个视频进行合并,还需要对一个视频按需求进行截切成多个视频,然而网上虽然有现成的工具。
狼啸风云
2020/01/14
1.6K0
Python视频编辑库:MoviePy
MoviePy是一个关于视频编辑的python库,主要包括:剪辑,嵌入拼接,标题插入,视频合成(又名非线性编辑),视频处理,和自定制效果。可以看gallery中的一些实例来了解用法。MoviePy可以读写所有的音频和视频格式,包括GIF,通过python2.7+和python3可以跨平台运行于window/Mac/Linux,下面是一个在IPython notebook的运行实例。 demo_preview.jpeg 实例
py3study
2020/01/02
2.2K0
Python使用tkinter+moviepy+pyaudio开发视频播放器
使用tkinter制作界面,播放mp4、avi视频,需要安装扩展库moviepy和pyaudio,可以参考之前推送过的文章或查阅相关资料。
Python小屋屋主
2020/05/08
1.7K0
Python使用tkinter+moviepy+pyaudio开发视频播放器
Python视频剪辑工具moviePy
关注了很多的公众号,大佬们的骚操作层出不穷,看的我跃跃欲试。也想整一下。跟在大佬们的后面好看风景(复现操作)。
云深无际
2021/04/14
2K0
Python视频剪辑工具moviePy
使用Python+moviepy连接不同尺寸的视频文件
如果直接连接多段不同尺寸的视频文件,后面几段可能会出现花屏的现象。可以使用VideoFileClip对象的resize()方法调整至相同大小,然后再进行连接就可以了。ImageFileClip对象也具有同样的resize()方法。
Python小屋屋主
2020/02/13
3.8K0
使用Python+moviepy连接不同尺寸的视频文件
创建和发布 Python 包
如果你和我一样,希望将编写的 Python 实用程序与同事共享,最好的方法是制作一个软件包:它很容易安装,而且不需要复制粘贴。
老齐
2021/04/30
9750
创建和发布 Python 包
如何发布自己的 python 包?
本文以笔者实际发布的 python 包 imgkernel 为例。因此,在本文所有出现 imgkernel 的地方,都替换成读者自己项目或包的名称。 同时,imgkernel 也托管在 github 上,后续 master 分支会更新,但是项目单独检出的 pkg 分支将保持与本文内容一致,不再改动。因此,可以将此分支 clone 下来作为新项目启动工程。clone pkg 分支的方法如下:
我是一条小青蛇
2019/10/23
6220
如何发布自己的 python 包?
moviepy,短视频生成
moviepy是一个用于视频编辑的python模块,能够实现基本的操作,比如视频的裁剪,拼接,插入标题等等 甚至还自带了一些高级的特效,以后再说。当然,gif格式的读写也在其内。
福贵
2021/01/08
1.7K0
保姆教程:构建与发布Python包
通常,如果您正在创建 Python 包,要么是因为有一些想要与他人分享的代码,要么是因为您对想要分享的东西有一定的想法。
数据科学工厂
2023/02/27
1.4K0
保姆教程:构建与发布Python包
使用dotnet Cli向nuget发布包
长话短说, 今天分享如何在nuget.org创建并发布.NET Standard package。
有态度的马甲
2020/06/10
1.2K0
python:使用moviepy合并m3u8格式的视频
视频网站或者客户端缓存下来的文件很多时候都是m3u8格式的文件,也就是拆成了很多段的视频,一个m3u8 文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(Media Playlist)或者是一个主列表(Master Playlist)。
生信菜鸟团
2022/04/08
1.9K0
python:使用moviepy合并m3u8格式的视频
python也能玩视频剪辑!moviepy操作记录总结
前几篇文章咱们介绍了一下图片的处理方式,今天咱们说说视频的处理。python能够支持视频的处理么?当然是肯定的,人生苦读,我用python。万物皆可python。
菜鸟小白的学习分享
2020/07/14
1.3K0
Python包:json扩展包demjson使用
Json在编程中是一种轻量级的文件格式,在本地开发或者web开发中使用较多。参考维基百科介绍如下:
用户3578099
2020/09/22
2.9K0
Python+moviepy进行音频剪辑、拼接和格式转换
1、使用pip命令安装Python扩展库moviepy。 2、查看音频原文件的属性,尤其是比特率,下图所示是一个用手机录制的音频文件的信息 3、编写代码,截取上面音频文件中的几段,然后拼接到一起。 4
Python小屋屋主
2021/07/19
2K0
使用typescript开发angular模块(发布npm包)
创建模块 初始化package.json文件 执行命名 npm init -y 会自动生成package.json文件如下,name默认为文件夹名称 { "name": "MZC-Ng-Api", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords"
易兒善
2018/08/21
1.3K0
使用typescript开发angular模块(发布npm包)
python学习笔记5.4-包的发布
本文介绍了如何利用Python包的发布工具发布自己的Python包。主要包括了setup.py和MANIFEST.ni文件的介绍和编写,以及包安装的过程。
锦小年
2018/01/02
5690
如何使用npm发布自己的npm包
一. 创建 在npm的官网上注册一个账号,https://www.npmjs.com/ 1:在本地通过npm init 初始化一个项目,并建一个index.js 文件,因为index.js为默认进入的文件,如下: image-ab2ede5fb9d14ab8bb059eb63257c67c.png 2:在本地将该创建的项目打开,并在index.js编写想要写的文件(这里简单写一个排序),如下: image-1dc4644452b844869943897ce6cfd223.png 3:接下来通过npm
小吕
2022/06/16
1.5K0
如何使用npm发布自己的npm包
如何使用npm发布自己的npm包
一. 创建 在npm的官网上注册一个账号,https://www.npmjs.com/ 1:在本地通过npm init 初始化一个项目,并建一个index.js 文件,因为index.js为默认进入的文件,如下: 2:在本地将该创建的项目打开,并在index.js编写想要写的文件(这里简单写一个排序),如下: 3:接下来通过npm login来登录你之前创建的npm账号,如下: 4:npm pubish 二. 使用 npm install 包名 三. 版本更新 更改版本号 重新发布
小吕
2022/09/26
3.8K0
如何使用npm发布自己的npm包
提取视频中的音频——python三行程序搞定「建议收藏」
  身处数据爆炸增长的时代,各种各样的数据都飞速增长,视频数据也不例外。我们可以使用 python 来提取视频中的音频,而这仅仅需要安装一个体量很小的python包,然后执行三行程序!   语音数据在数据分析领域极为重要。比如可以分析语义、口音、根据人的情绪等等。可以应用于偏好分析、谎话检测等等。
全栈程序员站长
2022/08/26
1.5K0
提取视频中的音频——python三行程序搞定「建议收藏」
点击加载更多

相似问题

使用Python MoviePY合并视频太慢

41

python中的问题(moviepy)

20

使用opencv和python或moviepy提取图像

13

如何使用moviepy获得Python视频的音量?

10

Python Moviepy模块:输出视频?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文