Ubuntu使用ffmpeg切割视频

本文详细介绍如何在Ubuntu系统上安装FFmpeg,并提供了一系列实用的FFmpeg命令,用于视频格式转换、切割等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu使用ffmpeg切割视频


1、安装FFmpeg

1、安装依赖
当前环境 ubuntu16

sudo apt-get update
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
sudo apt-get install yasm
sudo apt-get install libx264-dev

源码安装:
    2、下载tarball

        http://www.ffmpeg.org/download.html

    3、解压,并参考install文件

        1./configure
        2、make
        3、make install  

apt 安装:
sudo apt install ffmpeg

4、安装完成后检查ffmpeg 版本  
    ffmpeg -version

5、使用
    ffmpeg -i a.mp4  -codec copy -map 0 -bsf h264_mp4toannexb -c copy -f segment -segment_list output.m3u8 -segment_time 5 output-%03d.ts
    -i 输入文件

    -codec 音频|视频编解码 方式
        D)音频选项
        -acodec codec 使用codec编解码 音频
        -ab bitrate 设置音频码率
        -ar freq 设置音频采样率
        -ac channels 设置通道 缺省为1
        -an 不使能音频纪录
        -acodec codec 使用codec编解码
        -an 不使能音频纪录
        b) 视频选项
        -b bitrate 设置比特率,缺省200kb/s
        -r fps 设置帧频 缺省25
        -s size 设置帧大小 格式为WXH 缺省160X128
        -vcodec codec 强制使用codec编解码视频。 如果用copy表示原始编解码数据必须被拷贝。


    -map file:stream 设置输入流映射

    -bsf h264_mp4toannexb
    主要是因为使用了mp4中的h264编码,而h264有两种封装:
    一种是annexb模式,传统模式,有startcode,SPS和PPS是在ES中;另一种是mp4模式,一般mp4、mkv、avi会没有startcode,SPS和PPS以及其它信息被封装在container中,每一个frame前面是这个frame的长度,很多解码器只支持annexb这种模式,因此需要将mp4做转换;在ffmpeg中用h264_mp4toannexb_filter可以做转换;所以需要使用-bsf h264_mp4toannexb来进行转换
    -c选项是-codec的缩写

注意:{如上的命令,可能会报错,因为在编码音频的时候aac格式的音频,h264_mp4toannexb无法操作}    
ffmpeg 命令详解:

ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]

    ffmpeg [[options][`-i' input_file]]... {[options] output_file}...

1、参数选项:
    (1) -an: 去掉音频
    (2) -acodec: 音频选项, 一般后面加copy表示拷贝
    (3) -vcodec:视频选项,一般后面加copy表示拷贝

 2、格式:
    (1) h264: 表示输出的是h264的视频裸流
    (2) mp4: 表示输出的是mp4的视频
    (3)mpegts: 表示ts视频流


1、使用ffprobe查看文件编码方式
    ffprobe a.mp4 
2、如果不是mp4的,可以用如下命令进行转
    ffmpeg -i input.mkv -acodec copy -vcodec copy out.mp4 
3、将mp4转为完整的ts
    ffmpeg -i out.mp4 -c copy -bsf h264_mp4toannexb output.ts  

4、将ts切片,并生成m3u8文件

    ffmpeg -i output.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 output%03d.ts  
    其中segment 就是切片,-segment_time表示隔几秒进行切一个文件,上面命令是隔5s,你也可以调整成更大的参数。

5、ffmpeg 查看所有编码器
    ffmpeg -encoders  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值