求个小脚本写法!

2022-07-30 23:51:49 +08:00
 zjvbqla

用 ffmpeg 把目录 a 下的所有 mp4 文件切割成 8 秒一段,并且建立视频名称为名的文件夹。

比如 a 文件夹下 123.mp4 40 秒钟,234.mp4 80 秒, 运行后就变成目录下这 2 个 mp4 不变,a 目录内多了 2 个文件夹,分别是 123 和 234 。 123 存放了切成 5 段的 123.mp4 。 234 成放了切成 10 段的 234.mp4

a
├── 123.mp4
├── 234.mp4
├── 123
│   ├── 123+0001.mp4
│   ├── 123+0002.mp4
│   └── 123+0003.mp4
└── 234
    ├── 234+0001.mp4
   ├── 234+0002.mp4
    ├── 234+0003.mp4
    └── 234+0004.mp4

最后的输出最好是“目录名+0001.mp4”“目录名+0002.mp4”“目录名+0003.mp4”

shell 和 python 均可。

ffmpeg 写法是

ffmpeg -i /Users/abu/Movies/示例.mp4 -c copy -map 0 -segment_time 8 -f segment output%03d.mp4
1309 次点击
所在节点    问与答
9 条回复
eason1874
2022-07-31 00:38:09 +08:00
大概这样,目录名最好别跟文件同名,我这里的格式是 123 对应 123-segments

```
import os
import glob

mp4filelist = glob.glob("/opt/videos/*.mp4")
for mp4file in mp4filelist:
basename = os.path.basename(mp4file)
segmentsdir= f"{mp4file}-segments"
if not os.path.exists(segmentsdir):
os.makedirs(segmentsdir)
os.system(f"ffmpeg -i {mp4file} -c copy -map 0 -segment_time 8 -f segment {segmentsdir}/{basename}+%03d.mp4")
```
anlegong
2022-07-31 00:38:16 +08:00
a
├── 123.mp4
├── 234.mp4
├── 123
│ ├── 123+0001.mp4
│ ├── 123+0002.mp4
│ └── 123+0003.mp4
└── 234
├── 234+0001.mp4
├── 234+0002.mp4
├── 234+0003.mp4
└── 234+0004.mp4

歪个楼,,,

这个是怎么生成的,有什么专用的小工具或脚本命令吗?
eason1874
2022-07-31 00:39:09 +08:00
发出来空格被吞了,你自己加上吧,也就几句,应该不难
zjvbqla
2022-07-31 01:04:09 +08:00
@anlegong tree 命令
zjvbqla
2022-07-31 01:04:47 +08:00
@eason1874 好 我研究下,还不太会玩。
monzuguan
2022-07-31 17:40:25 +08:00
kkocdko
2022-08-01 02:53:19 +08:00
建议直接输出 m3u8 ,会自动切好 ts ,然后再批量转回 mp4 。
使用 -c copy 参数,不会重新编码。
ruidoBlanco
2022-08-01 10:45:06 +08:00
不能一行写了算我输。

for i in *.mp4; do name=${i%%.mp4} ; mkdir -p $name; ffmpeg -i $i -c copy -map 0 -segment_time 8 -f segment "${name}/${name}%03d.mp4"; done
zjvbqla
2022-08-01 18:57:57 +08:00
@ruidoBlanco 给力。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/869708

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX