ffmpeg如何去掉片头片尾
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
ffmpeg如何去掉片头片尾
如题,事实上就是片尾不知道如何去处。
使用安卓的开发板用来看4K的电视剧,
然而,他不具备跳过片头片尾的功能,
因此需要使用ffmpeg手工切割,
然而,
ffmpeg -i input -ss start
这个容易,然而
-t这个就不好说了,
有些电视每集都不一样长,
如何才能删除片尾?
多谢!
使用安卓的开发板用来看4K的电视剧,
然而,他不具备跳过片头片尾的功能,
因此需要使用ffmpeg手工切割,
然而,
ffmpeg -i input -ss start
这个容易,然而
-t这个就不好说了,
有些电视每集都不一样长,
如何才能删除片尾?
多谢!
- astolia
- 论坛版主
- 帖子: 6445
- 注册时间: 2008-09-18 13:11
Re: ffmpeg如何去掉片头片尾
如果片尾长度是固定的,那么获取整片长度后,减一下不就知道了?
-
- 帖子: 62
- 注册时间: 2020-02-03 8:53
- 系统: linux mint
Re: ffmpeg如何去掉片头片尾
成功了么?具体怎么实现的啊
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
- astolia
- 论坛版主
- 帖子: 6445
- 注册时间: 2008-09-18 13:11
Re: ffmpeg如何去掉片头片尾
不需要用正则表达式,直接在脚本里用cut就行了,差不多就像下面这样
代码: 全选
A="11:22:33"
h=$(echo $A | cut -f1 -d:)
m=$(echo $A | cut -f2 -d:)
s=$(echo $A | cut -f3 -d:)
echo $(( $h * 3600 + $m * 60 + $s - 120 ))
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
Re: ffmpeg如何去掉片头片尾
刚刚写出来的。
#!/bin/bash
ss=00:01:00
minus=00:02:00
h1=$(echo $minus | cut -f1 -d:)
m1=$(echo $minus | cut -f2 -d:)
s1=$(echo $minus | cut -f3 -d:)
t1=$(( $h1 * 3600 + $m1 * 60 + $s1 ))
for i in *mp4
do
duration=$(ffmpeg -i "$i" 2>&1|grep Duration|cut -d ' ' -f 4 |sed s/,//)
h2=$(echo $duration |cut -f1 -d:)
m2=$(echo $duration |cut -f2 -d:)
s2=$(echo $duration |cut -f3 -d:)
t2=$(( $h2 * 3600 + $m2 * 60 + ${s2%.*} ))
to=$(( $t2 - $t1 ))
ffmpeg -i "$i" -ss $ss -to $to -c copy ~/"$i"
done
- astolia
- 论坛版主
- 帖子: 6445
- 注册时间: 2008-09-18 13:11
Re: ffmpeg如何去掉片头片尾
因为你是要去掉一部分长度,我就随手写了个120秒作为例子,这也想不通?
你后面的脚本还在傻乎乎地算00:02:00是多少秒,我直接写出来120,明白了吗?
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
Re: ffmpeg如何去掉片头片尾
OK,我反应过来了,你那个脚本是自己计算出结尾是多少秒,我是让他机器计算,没差多少,脚本反正也没复杂更多。astolia 写了: ↑2020-04-19 0:18因为你是要去掉一部分长度,我就随手写了个120秒作为例子,这也想不通?
你后面的脚本还在傻乎乎地算00:02:00是多少秒,我直接写出来120,明白了吗?
- bzimage
- 帖子: 716
- 注册时间: 2006-03-14 10:25
Re: ffmpeg如何去掉片头片尾
mark