源视频文件使用阿里云普通的上传接口即可,上传之后,阿里云会自动转成mp4的格式,然后我们需要调用iAcsClient.getAcsResponse(request)查转码后的文件。

    1. for (ResourceTranscodeDTO resourceTranscodeDTO : data) {
    2. QueryMediaListByURLRequest request = new QueryMediaListByURLRequest();
    3. request.setFileURLs(httpDomain + FileConstants.getInput(resourceTranscodeDTO.getFileId()));
    4. request.setIncludeMediaInfo(true);
    5. QueryMediaListByURLResponse response = iAcsClient.getAcsResponse(request);
    6. if (Objects.isNull(response) || CollectionUtils.isEmpty(response.getMediaList())){
    7. tracer.trace("当前无对应转码或者还在转码中,自动重试尝试,fileId:" + resourceTranscodeDTO.getFileId());
    8. ResourceTranscodeDTO transcodeDTO = new ResourceTranscodeDTO();
    9. transcodeDTO.setFileId(resourceTranscodeDTO.getFileId());
    10. transcodeDTO.setRetries(resourceTranscodeDTO.getRetries() - 1);
    11. if (transcodeDTO.getRetries() == 0){
    12. transcodeDTO.setTranscodeStatus(FAIL);
    13. }
    14. resourceTranscodeService.update(transcodeDTO);
    15. continue;
    16. }
    17. QueryMediaListByURLResponse.Media media = response.getMediaList().get(0);
    18. String runId = media.getRunIdList().get(0);
    19. ResourceTranscodeDTO transcodeDTO = new ResourceTranscodeDTO();
    20. transcodeDTO.setFileId(resourceTranscodeDTO.getFileId());
    21. transcodeDTO.setTranscodeStatus(SUCCESS);
    22. transcodeDTO.setRunId(runId);
    23. resourceTranscodeService.update(transcodeDTO);
    24. tracer.trace("该视频转码成功, fileId:" + resourceTranscodeDTO.getFileId());

    a0c3f8f5a478daf162873486108c0fc.jpg