前言

假设你有几百上千个短视频片段,想要将他们合成一个大的视频,这时候ffmpeg就能帮上忙了,ffmpeg是一个多媒体处理工具,linux中(termux也可以)可通过包管理器直接安装。三丰查了一下简单用法,写了一个简单的shell函数用于快速连接视频片段,具体如下:

利用ffmpeg编写的shell函数

# 连接视频片段
function catv() {
    [[ "$1" == "" ]] || [[ "$1" == "-h" ]] && echo "usage: catv [1.mp4, 2.mp4, ...] target.mp4" && return 1
    j=1 # 视频片段计数
    # 获取除了最后一个参数外的参数
    for i in ${@:1:-1};do
        # 将片段转换为ts格式,以便直接连接
        ffmpeg -i $i -vcodec copy -acodec copy -vbsf h264_mp4toannexb $j.ts
        let j++
    done
    arg="concat:" # 最终连接的参数
    for i in `seq 1 $[j-1]`; do
        arg=${arg}$i.ts\|
    done
    ffmpeg -i $arg -acodec copy -vcodec copy -absf aac_adtstoasc ${@: -1}
    rm -rf *.ts
    return 0
}
使用时只需将上述函数粘贴至shell自定义配置文件中source一下即可,之后可以这样调用:
catv *.mp4 target.mp4
最后修改:2023 年 12 月 01 日
如果觉得我的文章对你有用,请随意赞赏