美文网首页
ffmpeg上传视频自动切片

ffmpeg上传视频自动切片

作者: 在牛魔角上狂码 | 来源:发表于2018-11-12 18:49 被阅读0次

安装ffmpeg

  • 系统 ubuntu 16.0.4

sudo apt-get update

sudo apt-get install ffmpeg
  • 系统 centos 7

安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持


yum install -y epel-release rpm 

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7          //如果出现缺少Code提示,就执行此条命令

yum repolist            //安装完成之后,可以查看是否安装成功

安装Nux-Dextop源

rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro         //导入一个Code

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm         //安装nux-dextop 源

yum repolist      #查看repo源是否安装成功

安装ffmpeg

yum install -y ffmpeg

ffmpeg --version
# 显示如下:
ffmpeg version 2.8.15 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-28)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --extra-ldflags='-Wl,-z,relro ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Unrecognized option '-version'.
Error splitting the argument list: Option not found

格式转换

  • 把avi格式转换为mp4格式

ffmpeg -i video0.avi video0.mp4
  • 将一张jpg图片转为MP4格式视频

ffmpeg -r 25 -loop 1 -i 1010.jpg -pix_fmt yuv420p -vcodec libx264 -b:v 600k -r:v 25 -preset medium -crf 30 -s 1080x1920 -vframes 250 -r 25 -t 10 ~/a.mp4
  • 将mp4文件转换为m3u8,并带有.ts索引文件

方法一 : 这个命令的执行效率比较低,耗时过长

ffmpeg -i abc.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 0 -hls_time 30 abc.m3u8

方法二: 视频编码不是h264的,会出现播放失败

//先将MP4文件转换为 ts 文件
ffmpeg -y -i /home/vagrant/Code/laravel-shop/public/d17618cbd480998a966209c51154490e_wm.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb /home/vagrant/Code/laravel-shop/public/abc.ts

//将 ts 文件切片,并合成m3u8索引文件
ffmpeg -i /home/vagrant/Code/laravel-shop/public/abc.ts -c copy -map 0 -f segment -segment_list /home/vagrant/Code/laravel-shop/public/abc.m3u8 -segment_time 5 /home/vagrant/Code/laravel-shop/public/abc%03d.ts

方法三:

ffmpeg -i /home/vagrant/Code/laravel-shop/public/d17618cbd480998a966209c51154490e_wm.mp4 -c copy -strict -2 -bsf:v h264_mp4toannexb -f hls -hls_list_size 0 -hls_time 5 /home/vagrant/Code/laravel-shop/public/abc.m3u8

生成的m3u8文件,在手机端可以直接访问m3u8文件路径,或者使用 VLC 播放器测试播放

下载 VLC media player 播放器

FFMPEG官方文档

相关文章

  • ffmpeg上传视频自动切片

    安装ffmpeg 系统 ubuntu 16.0.4 系统 centos 7 安装EPEL Release,因为安装...

  • 视频切片上传

    主要用于大视频的切片上传 主要实现步骤: 声明变量 获取视频信息的工具类 视频切片 分配文件名:目前只做了mp4格...

  • FFmpeg功能命令集合

    前言 如此强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流...

  • FFmpeg功能命令汇总

    前言 如此强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流...

  • FFmpeg功能命令

    前言 如此强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流...

  • 使用ffmpeg对视频进行TS切片

    1.ffmpeg切片命令,以H264和AAC的形式对视频进行输出 ffmpeg -i input.mp4 -c:v...

  • 视频切片上传与转码

    一、视频切片上传 1、获取视频数据的总片数 2、获取每一片视频数据 3、上传每一片的数据 二、视频转码 三、获取视...

  • SpringBoot之@Async异步调用

    场景说明,最近需要开发视频转码,前端上传视频到后端,保存视频,转码,切片,加密,水印,最后上传到云存储,这一系列操...

  • node 视频服务器 切片ffmpeg

    node 视频服务器 切片ffmpeg 第一部分 音视频相关概念 1.1 视频相关概念 1.1.1 分辨率 分辨率...

  • Vue Axios 切片上传文件含实时进度

    切片上传一般用于大型文件上传,切成多个部分分开上传。 整体实现思路: 预先设置切片大小。 计算总切片次数 循环调用...

网友评论

      本文标题:ffmpeg上传视频自动切片

      本文链接:https://www.haomeiwen.com/subject/phmcfqtx.html