问题导引:去年过年期间家里装了监控,碰巧家里有黑群晖;于是就想着利用群晖 Surveillance 套件的 TimeLapse 功能,将每天的延时视频转码并推送到微信。

整个过程分为录制转码推送三个部分,其中录制由群晖 Surveillance 套件完成;转码由腾讯云服务器完成(买都买了,不用白不用);推送选择的是企业微信 API ,由 shell 脚本完成(别的不会😕)

系统环境为腾讯云轻量服务器 Ubuntu Server LTS 20.04

安装 FFmpeg

使用 SSH 登录到腾讯云服务器

Ubuntu/Debian:

apt-get install ffmpeg -y

Redhat/CentOS:

yum install ffmpeg -y

安装完成后输入ffmpeg返回以下为安装成功

FFmpeg 命令略解

格式转换

ffmpeg -i input.avi output.mp4

提取音频

ffmpeg -i test.mp4 -acodec aac -vn output.aac

参数 -acodec 为音频编解码器
参数 -vn 为仅保留音频

提取视频

ffmpeg -i input.mp4 -vcodec copy -an output.mp4

参数 -vcodec 为视频编解码器
参数 -an 为仅保留视频

视频剪切

ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4

参数 -ss 表示开始切割的时间
参数 -t 为表示要切多少

码率控制

ffmpeg -i input.mp4 -b:v 2000k output.mp4

参数 -b:v2000k 表示目标码率

ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4

参数 -bufsize 用于设置码率控制缓冲器的大小,让整体的码率更趋近于希望的值

编码格式转换

ffmpeg -i input.mp4 -vcodec h264 output.mp4