使用 quicktime-player+ffmpeg-錄製視訊教程-最後部署在私有云

jcc123發表於2020-10-12

最近,在錄製一些視訊教程,探索一下,做個記錄。

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 協議》,轉載必須註明作者和本文連結
NOT IS BECAUSE I WANT TO WRITE, BUT I WANT TO INCREASE, SO I GO TO WRITE~~

相關文章