最近,在錄製一些視訊教程,探索一下,做個記錄。
1 要求
MacBook
quicktime-player
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以文件每一章節的方式錄製所有視訊,奈何工程量太大,遂放棄,只錄制了一個基礎教程
5 不足
視訊連結都是可以公開的訪問,沒有摸清收費視訊,是怎麼搞得,有知道的同學,還請指教一下
本作品採用《CC 協議》,轉載必須註明作者和本文連結