全棧式實戰專案 Java仿抖音短視訊小程式開發 第四章 資料庫設計
阿新 • • 發佈:2018-11-25
全棧式實戰專案 Java仿抖音短視訊小程式開發 第四章 資料庫設計www.yanhui.fun
網上找了很多資源,發現都沒有第四章視訊,如需獲取第四章視訊或完整的開始視訊及程式碼,請加QQ490647751.
今天,我們分析一下抖音的sql資料庫,如果讓你自己做一個短視訊專案,你會怎麼做捏,之前老師我用ssh做了一個點播系統 http://www.zuidaima.com/share/3216673732594688.htm, 也用ssm開發了視訊播放系統 https://blog.csdn.net/sinat_15153911/article/details/81144635?utm_source=blogxgwz2
後臺頁面
我自己也很喜歡刷抖音,視訊有的橫向,有的縱向,有的有背景音樂,有的用錄影時的聲音,有我發表的作品,有我收藏的,喜歡的作品。最重要是,有城市顯示,起碼知道自己關注的人在哪裡。
表分析
1、視訊表
視訊有誰釋出吧,bgm的id吧,視訊存放的路徑吧,視訊的秒數吧,視訊的寬度高度,封頁圖,點贊分享評論的數量,是否被禁播吧,建立時間
2、bgm表
bgm的作者吧,bgn的name吧,bgm存放的路徑吧
3、user表
使用者名稱,密碼,頭像,暱稱,粉絲,關注等
更多表請加QQ490647751 獲取
學習分享
1、使用ffmepg獲取視訊第一秒的封頁圖
public void getCover(String videoInputPath, String coverOutputPath) throws IOException, InterruptedException {
// ffmpeg.exe -ss 00:00:01 -i spring.mp4 -vframes 1 bb.jpg
List<String> command = new java.util.ArrayList <String>();
command.add(ffmpegEXE);
// 指定擷取第1秒
command.add("-ss");
command.add("00:00:01");
command.add("-y");
command.add("-i");
command.add(videoInputPath);
command.add("-vframes");
command.add("1");
command.add(coverOutputPath);
for (String c : command) {
System.out.print(c + " ");
}
ProcessBuilder builder = new ProcessBuilder(command);
Process process = builder.start();
InputStream errorStream = process.getErrorStream();
InputStreamReader inputStreamReader = new InputStreamReader(errorStream);
BufferedReader br = new BufferedReader(inputStreamReader);
String line = "";
while ( (line = br.readLine()) != null ) {
}
if (br != null) {
br.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (errorStream != null) {
errorStream.close();
}
}
2、視訊轉碼 mp4轉avi
public void convertor(String videoInputPath, String videoOutputPath) throws Exception {
// ffmpeg -i input.mp4 -y output.avi
List<String> command = new ArrayList<>();
command.add(ffmpegEXE);
command.add("-i");
command.add(videoInputPath);
command.add("-y");
command.add(videoOutputPath);
for (String c : command) {
System.out.print(c + " ");
}
ProcessBuilder builder = new ProcessBuilder(command);
Process process = builder.start();
InputStream errorStream = process.getErrorStream();
InputStreamReader inputStreamReader = new InputStreamReader(errorStream);
BufferedReader br = new BufferedReader(inputStreamReader);
String line = "";
while ( (line = br.readLine()) != null ) {
}
if (br != null) {
br.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (errorStream != null) {
errorStream.close();
}
}
3、一個視訊 + 一個背景音樂 = 一個新視訊
學會這些,你做個類似的產品還難嗎?老師也自己嘗試做了一個小demo https://blog.csdn.net/sinat_15153911/article/details/83387164
這些並不難,難的是如何分散式儲存你這些視訊,接下來老師會教大家打造hbase大資料分散式儲存系統,
也將會開發一個人人可以做主播的夢的網站,你們做主持人,錄製自己的聲音或者加上一些背景音樂,然後釋出網上別人聽,靡靡之音,餘音繞你。這就是豔聽。
public void convertor(String videoInputPath, String mp3InputPath,
double seconds, String videoOutputPath) throws Exception {
// ffmpeg.exe -i 蘇州大褲衩.mp4 -i bgm.mp3 -t 7 -y 新的視訊.mp4
List<String> command = new ArrayList<>();
command.add(ffmpegEXE);
command.add("-i");
command.add(videoInputPath);
command.add("-i");
command.add(mp3InputPath);
command.add("-t");
command.add(String.valueOf(seconds));
command.add("-y");
command.add(videoOutputPath);
// for (String c : command) {
// System.out.print(c + " ");
// }
ProcessBuilder builder = new ProcessBuilder(command);
Process process = builder.start();
InputStream errorStream = process.getErrorStream();
InputStreamReader inputStreamReader = new InputStreamReader(errorStream);
BufferedReader br = new BufferedReader(inputStreamReader);
String line = "";
while ( (line = br.readLine()) != null ) {
}
if (br != null) {
br.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (errorStream != null) {
errorStream.close();
}
}