1. 程式人生 > >全棧式實戰專案 Java仿抖音短視訊小程式開發 第四章 資料庫設計

全棧式實戰專案 Java仿抖音短視訊小程式開發 第四章 資料庫設計

全棧式實戰專案 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

,也教過小弟一步一步實現 https://blog.csdn.net/sinat_15153911/article/details/79986399?utm_source=blogxgwz1 。。。

後臺頁面

ibG9eO.jpg

我自己也很喜歡刷抖音,視訊有的橫向,有的縱向,有的有背景音樂,有的用錄影時的聲音,有我發表的作品,有我收藏的,喜歡的作品。最重要是,有城市顯示,起碼知道自己關注的人在哪裡。

表分析

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();
		}
		
	}