Issues in python based ffmpeg operation(基于python的ffmpeg操作中的问题)
本文介绍了基于python的ffmpeg操作中的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试编写一个脚本,该脚本将自动获取持续时间值并将音频文件切成较小的拆分。为此,我将所有的开始时间和持续时间保存在一个列表中。这是我试图运行的代码。
for k in range(0,len(start_time)):
s=start_time[k]
e=Duration[k]
filename = "output%d.mp3" % (k)
!ffmpeg -i Audio.mp3 -ss s -t e -acodec copy filename
k=k+1
在运行此命令时,我收到以下错误
Invalid duration specification for ss: s
我怀疑这个错误是因为我使用列表调用元素,所以时间戳两边都有引号。其次,我不确定如何指定文件名,以便每个创建的拆分都具有格式为output_1.mp3的名称,依此类推。该整数将是拆分的标识符。这段代码有哪些可能的修复方法呢?请注意,我正在Google Colab上运行此程序。
推荐答案
Google Colab在其云中运行的是由IPython支持的Jupyter笔记本,IPython使用特殊的语法进行外壳调用(命令从!感叹号开始),即它们在(临时)shell会话中执行。如果使用Google Colab,则为bash:
res = !echo $SHELL
print(res)
> ['/bin/bash']
我查了一下,Google Colab上确实有ffmpeg:
res = !which ffmpeg
print(res)
> ['/usr/bin/ffmpeg']
,所以您可以通过ffmpeg:";Invalid Duration Specification.&qot;(我指的不是shell或python)输出合法的错误消息,它只是意味着您传递的变量不会像您那样被它的值替换。由于将变量传递给shell不遵循上述特殊语法,请检查this;传递变量时应将变量用大括号括起来:
!ffmpeg -i Audio.mp3 -ss {s} -t {e} -acodec copy {filename}
这篇关于基于python的ffmpeg操作中的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:基于python的ffmpeg操作中的问题
基础教程推荐
猜你喜欢
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
