吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4236|回复: 13
收起左侧

[Windows] 视频批量去片头片尾(FFmpeg+shell脚本)

  [复制链接]
fei888888 发表于 2023-8-18 17:09
本帖最后由 fei888888 于 2023-8-18 17:26 编辑

感谢@sbwfnhn提供的脚本,命令如下:
[Shell] 纯文本查看 复制代码
#!/bin/bash
#我这里要切除的开头8秒和结尾7 秒
title_sequence="00:00:08"      #要去掉片头的时间
beg=8                          #把title_sequence转化成秒
end=7                          #片尾秒
 
#用 for 循环直接获取当前目录下的 mp4、mp3、avi 等文件循环处理,单个文件可以去掉 for 循环
filename="*.mp4"
for i in $filename; do
    #将元数据信息临时保存到 tmp.log 文件中
    echo $i
    ffmpeg -i "$i" > tmp.log 2>&1
    #获取视频的时长,格式为  00:00:10,10 (时:分:秒,微妙)
    time="`cat tmp.log |grep Duration: |awk  '{print $2}'|awk -F "," '{print $1}'|xargs`"
    echo $time
    #求视频的总时长,先分别求出小时、分、秒的值,这里不处理微秒,可以忽略
    hour="`echo $time |awk -F ":" '{print $1}' `"
    min="`echo $time |awk -F ":" '{print $2}' `"
    sec="`echo $time |awk -F ":" '{print $3}'|awk -F "." '{print $1}' `"
    #echo $hour $min $sec
    num1=`expr $hour \* 3600`
    num2=`expr $min \* 60`
    num3=$sec
    #计算出视频的总时长(秒)
    sum=`expr $num1 + $num2 + $num3`  
     
    #总时长减去开头和结尾就是截取后的视频时长,并且这里不需要再转回 hour:min:sec 的格式,直接使用结果即可
    newtime=`expr $sum - $beg - $end`
    #echo $newtime
        echo "-----------:"$newtime
     
    #截取新视频存放目录,哪果不存在则创建
    if [[ ! -d ./out_mp4 ]];then
        mkdir ./out_mp4
    fi
    pwd
    #####/usr/local/ffmpeg/bin/ffmpeg -ss 00:00:07 -i $i -t $newtime -c:v copy -c:a copy /data/tmp/$i -y
    echo "文件名不能有空格"
    #./ffmpeg.exe -i "$i" -map 0:v -c:v copy -bsf:v h264_mp4toannexb raw.h264 -y
    #./ffmpeg.exe -fflags +genpts -r 27.2 -i raw.h264 -i "$i" -map 0:v -c:v copy -map 1:a -af atempo=0.90666 -movflags faststart ./out_mp4/"$i"  -y
    # -ss去掉片头,-t一直截到视频的尾部的总时长,减掉尾部时长的总时长,就是去掉了片尾
    ffmpeg -ss $title_sequence -i $i -t $newtime -c:v copy -c:a copy ./out_mp4/$i -y
done


软件下载地址:
ffmpeg(注意:解压到某个目录后需要添加环境变量,具体可以百度,如不添加环境变量,命令中的ffmpeg需要给全路径)
https://wwww.lanzoub.com/ibehV15q7iud
git
https://wwww.lanzoub.com/iEvuF15q7myb
密码:ddhj


使用教程如下:
1.命令复制保存为.sh文件(命令中默认获取的是MP4格式的文件,如其他格式需要修改)
2.命令放在你要处理的视频目录下
3.在目录下左击鼠标选择git Bash Here
4,执行  ****.sh
5.视频会输出到同目录的out_mp4下(输出目录可以在命令中修改)



111111111.png
2222222333333333.png
333333333.png

免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
TTBigCat + 1 + 1 谢谢@Thanks!
liuzho + 1 + 1 谢谢@Thanks!
zeroonetwo + 1 + 1 谢谢@Thanks!
feihui8888 + 1 + 1 谢谢@Thanks!
天地人2019 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| fei888888 发表于 2023-8-22 13:04
天地人2019 发表于 2023-8-22 08:56
请问“Git-2.41.0-64-bit.exe"是个什么文件?是直接运行吗?

git安装就好,是版本控制软件,最常用在软件开发管理。ffmpeg解压直接使用。记得添加环境变量,参考:https://blog.csdn.net/Chanssl/article/details/83050959
easonl13 发表于 2023-8-31 07:33
easonl13 发表于 2023-8-31 07:27
感谢大佬,我试了下,提示没有此类文件,也就是文件识别不了,都是mp4格式的,我也把多种视频格式的代码添 ...

我有仔细看了下代码,发现文件名有空格不行,我就批量重命名1(1)这种,还是不行,直接改成1.mp4这种不带符号的没有空格的文件名才行,总算搞清楚了
天地人2019 发表于 2023-8-22 08:56
请问“Git-2.41.0-64-bit.exe"是个什么文件?是直接运行吗?
Eaglecad 发表于 2023-8-22 09:42
天地人2019 发表于 2023-8-22 08:56
请问“Git-2.41.0-64-bit.exe"是个什么文件?是直接运行吗?

他这个git是 安装后,能使用 bash 脚本。假如安装过 Cygwin之类的,也可以。
天地人2019 发表于 2023-8-22 10:06
Eaglecad 发表于 2023-8-22 09:42
他这个git是 安装后,能使用 bash 脚本。假如安装过 Cygwin之类的,也可以。

感谢热心回复,论坛有你更精彩!
feihui8888 发表于 2023-8-22 13:06
好东西啊!!下载试试,回来再评价
gjw3620138 发表于 2023-8-24 00:40
看着一串串代码,感觉不会用,有个傻瓜软件多好,看教程总有片头,麻烦的很,
zeroonetwo 发表于 2023-8-24 09:15
谢谢分享
huic 发表于 2023-8-24 21:00
谢谢分享
liuyu 发表于 2023-8-25 03:10
处理多种视频格式怎么改
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 08:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表