使用 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
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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