使用 quicktime-player+ffmpeg-录制视频教程-最后部署在私有云

最近,在录制一些视频教程,探索一下,做个记录。

1 要求

  • MacBook

  • quicktime-player

  • ffmpeg

  • scp (上传用)

  • 阿里云 ubuntu 1Cpu 2G内存 1M带宽(穷~)

  • octobercms (自己部署书的话需要)

2 使用quicktime-player 录制

最好有一个外接显示器,这样可以只录制外接显示器的屏幕。其中有一次录制完成后的声音失效了(将近一个小时~后期也可以配音,但成本太大了),不太清楚原因,所以录制的时候,分段录制,不要录制太长的。

使用起来很简单,录制完成后用到了几个脚本,对视频做个简单处理(程序员嘛,就不用专业的视频处理软件了),可以满足我的需求

ffmpeg 转换mp4

 ffmpeg -i xxx.flv -b:v 640k xxx.mp4

ffmpeg 剪切并合并视频

录制完后可能需要去掉某一部分的内容

 //剪切 
 ffmpeg -ss 00:00:00 -t 00:09:30 -i origin.mp4 -vcodec copy -acodec copy video1.mp4 
ffmpeg -ss 00:09:32 -t 5 -i origin.mp4 -vcodec copy -acodec copy video2.mp4

//新建个list.txt 文件 
cat list.txt

file ./video1.mp4
file ./video2.mp4

//合并
ffmpeg -f concat -safe 0 -i ./list.txt -c copy ./targer.mp4
  • ffmpeg 去除某一部分的声音
    有一部分的声音不想要了
ffmpeg -i origin.mp4 -af "volume=enable='between(t,7,11)':volume=0" -b:v 640k targit.mp4

ffmpeg + sox 去除视频中的噪音

录制视频过程中会有嗡嗡的风声,将其去除。
原理

  • 1 分离视频和音频

  • 2 噪音取样 (录制一个几秒没有人声的视频)

  • 3 音频去噪,将音频和视频合并

#!/usr/bin/env bash

set -X

f=$1
filename=${f%.*}

#分离视频
ffmpeg -i $1 -an -qscale 0 out/$filename.an.mp4;
#分离音频
ffmpeg -i $1 -vn out/$filename.wav
#音频去燥 zaoyin.prof 是去燥样本,生成一次就可
sox out/$filename.wav out/$filename.clean.wav noisered zaoyin.prof 0.21
# 合并音频和视频
ffmpeg -i out/$filename.clean.wav -i out/$filename.an.mp4 out/$filename.clean.mp4

#以上是脚本

#运行
./xxx.sh 视频名字

#zaoyin.prof 这样生成

#以下是脚本

#!/usr/bin/env bash
#先录制没有人声的视频即噪音视频,取出噪音
set -X
f=$1
filename=${f%.*}
ffmpeg -i $1 -vn -ss 00:00:00 -t 00:00:01 $filename.wav
#取出噪音样本
sox  $filename.wav -n noiseprof zaoyin.prof

#运行 最后生成 zaoyin.prof文件复制到将要去燥的视频的同级目录
./xxx.sh 噪音视频名字

3 使用scp上传

上传到服务器的根目录

scp xxxx.mp4 root@xxx:/xxxxx

4 访问

自己在之前的 oc-plugin-book 文档协作翻译插件 中扩展了 个video功能。该插件,可对文档中的任意章节进行录制,本来准备对octobercms以文档每一章节的方式录制所有视频,奈何工程量太大,遂放弃,只录制了一个基础教程

1

1

5 不足

视频链接都是可以公开的访问,没有摸清收费视频,是怎么搞得,有知道的同学,还请指教一下

本作品采用《CC 协议》,转载必须注明作者和本文链接
Make everything simple instead of making difficulties as simple as possible
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!