1. 程式人生 > >阿里Oss多媒體轉碼

阿里Oss多媒體轉碼

阿里Oss多媒體檔案轉碼儲存

	在自媒體頁面中有很多音訊或視訊的播放,本地播放一般為mp3 mp4 等等,如果直
	接在頁面中巢狀原格式檔案,檔案會比較大,造成使用者消耗的流量和伺服器的流量浪費,
	而且這對伺服器稀有的寬頻資源而言也是很多壓力, 所以我們們可以將檔案採用切片
	壓縮的方式上傳到伺服器,然後嵌入到頁面中,下面的程式碼採用的是阿里雲 OSS儲存,
	將mp3檔案轉為m3u8的方式.
阿里Oss 多媒體sdk 地址:
	https://help.aliyun.com/document_detail/67662.html?spm=a2c4g.11186623.6.739.6cf21490lcbejW
public class Mp3ToM3u8 {

	private static String mpsRegionId = "cn-hangzhou";

	/**
	 * 管道
	 */
	private static String pipelineId = "892efc9292574ecd8c118cb28138b65b";

	/**
	 * 轉碼模版 m3u8 標清模版id
	 */
	private static String templateId = "S00000001-100020";

	private static String ossLocation = "oss-cn-hangzhou";

	/**
	 * 原始檔bucket
	 */
	private static String ossInBucket = "ywwl-mp3";

	/**
	 * 原始檔bucket
	 */
	private static String ossOutBucket = "ywwl-m3u8";

	/**
	 * 原始檔
	 */
	private static String ossInputObject = "mp3/滄海一聲笑.mp3";

	/**
	 * 轉碼後的檔案 不需要字尾名
	 */
	private static String ossOutputObject = "home/canghaiyishengxiao/canghaiyishengxiao";

	static DefaultProfile profile = DefaultProfile.getProfile(mpsRegionId, OssUpload.accessKeyId,
			OssUpload.secretAccessKey);

	public static void main(String[] args) throws Exception {

		// 建立API請求並設定引數
		IAcsClient client = new DefaultAcsClient(profile);
		SubmitJobsRequest request = new SubmitJobsRequest();

		// Input
		JSONObject input = new JSONObject();
		input.put("Location", ossLocation);
		input.put("Bucket", ossInBucket);
		input.put("Object", URLEncoder.encode(ossInputObject, "utf-8"));
		request.setInput(input.toJSONString());

		// Output
		String outputOSSObject = URLEncoder.encode(ossOutputObject, "utf-8");

		JSONObject output = new JSONObject();
		output.put("OutputObject", outputOSSObject);
		output.put("TemplateId", templateId);

		JSONArray outputs = new JSONArray();
		outputs.add(output);
		request.setOutputs(outputs.toJSONString());
		request.setOutputBucket(ossOutBucket);

		request.setOutputLocation(ossLocation);
		request.setPipelineId(pipelineId);
		// 發起請求並處理應答或異常
		System.out.println("response: " + JSONObject.toJSONString(client.getAcsResponse(request)));
	}
}