Vídeo bajo demanda Alibaba Cloud VOD

1. Activar VOD en la nube de Alibaba

Documento de guía para principiantes: https://help.aliyun.com/zh/vod/getting-started/getting-started?spm=a2c4g.11186623.0.0.46c751a6bH1ffm#section-ixw-emd-fye

1. Activar VOD

Video on Demand (ApsaraVideo VoD, conocido como VOD) es una solución integral de audio y video on demand que integra la recopilación, edición, carga, administración de recursos de medios, procesamiento de transcodificación automática, análisis de auditoría de video y aceleración de distribución. Inicie sesión en Alibaba Cloud, busque VOD en el producto, haga clic para activar e ingrese a la consola de administración
imagen.png

2. Gestión de almacenamiento

  1. En el área de administración de configuración en la barra de navegación izquierda de la consola VOD, seleccione Configuración de administración de activos de medios > Administración de almacenamiento.
  2. En el área de servicio de la barra de menú sobre la consola VOD, seleccione el área a la que desea suscribirse (por ejemplo, seleccione East China 2 (Shanghai)).
  3. Haga clic en Habilitar para asignar un depósito de almacenamiento.

imagen.png

  1. Haga clic en Administrar y configure los permisos, las direcciones de retorno al origen y otras configuraciones según sus necesidades.

imagen.png

3. Configuración de codificación

La plantilla de transcodificación se puede usar para el procesamiento de transcodificación de video, y los parámetros establecidos en la plantilla se usarán como parámetros para el procesamiento de video. Puede crear varios tipos de plantillas de transcodificación para la transcodificación de video.

  1. En el área de administración de configuración en el panel de navegación izquierdo de la consola de VOD, seleccione Configuración de procesamiento de medios > Grupo de plantilla de transcodificación. Después de activar la administración de almacenamiento en esta área de servicio, el sistema agregará automáticamente un grupo de plantillas sin transcodificación y un grupo de plantillas de transcodificación TranscodeTemplateGroup.
  2. Haga clic en Agregar grupo de plantillas de transcodificación para ingresar a la página Agregar grupo de plantillas de transcodificación.
  3. Ingrese el nombre del grupo de plantillas, haga clic en Agregar plantilla en el área de plantilla de transcodificación común y puede configurar la plantilla de transcodificación de acuerdo con las indicaciones.

imagen.png

  1. Haga clic en Guardar y la interfaz salta automáticamente a la página del grupo de plantillas de transcodificación. En la página Grupo de plantillas de transcodificación, ya existe un grupo de plantillas de transcodificación recién creado. Puede editar y eliminar grupos de plantillas de transcodificación.

imagen.png

4. Gestión de vídeos

Cargar audio y video se refiere a cargar audio y video en su depósito de almacenamiento de VOD. Una vez completada la carga, el audio y el video se pueden procesar y distribuir.

  1. En el área Biblioteca multimedia de la barra de navegación izquierda de la consola VOD, haga clic en Audio/Video .
  2. Haga clic en Cargar audio/video para ingresar a la página de carga de audio/video .
  3. Haga clic en Agregar audio/video para seleccionar el método de carga y el tipo de procesamiento (plantilla de transcodificación o flujo de trabajo).
    • Carga local: debe seleccionar el archivo que desea cargar en el servicio bajo demanda haciendo clic o arrastrando el archivo.
    • Extracción de URL (compatible solo en la región de Shanghái): debe completar la URL, la extensión y el nombre de audio/video del archivo que desea cargar.
  4. Haga clic en Iniciar carga . El estado de carga del video se mostrará en la página de carga de audio/video. Cuando el estado cambia de cargando a cargando correctamente , significa que el video se ha cargado. Puede volver a la página de audio/video para ver los videos subidos.

Nota Siempre que la transcodificación esté involucrada en el proceso de carga, se incurrirá en tarifas de transcodificación. Si no quiere involucrar costos, se recomienda que use un grupo de plantillas que no transcodifique .

imagen.png

5. Administrar clave de acceso

Haga clic en el avatar -> Administración de claves de acceso para ingresar a la interfaz de administración de claves.
imagen.png
El ID de la clave de acceso y el Secreto de la clave de acceso son sus claves para acceder a la API de Alibaba Cloud. Tienen permisos completos para esta cuenta . Se recomienda usar la clave de acceso de subusuario.
imagen.png
Haga clic en 开始使用子用户AccessKeyCrear Usuario
imagen.png
para crear un usuario, especifique el nombre de usuario y los permisos de la API, haga clic en Aceptar
imagen.png
Después de crear una cuenta, primero copie la clave y utilícela más tarde, luego
imagen.png
haga clic en el nombre de usuario, ingrese a la página de detalles del usuario para encontrar la administración de permisos - haga clic en Agregar autorización - seleccionar permisos - agregar permisos relacionados con VOD al panel derecho, de la siguiente manera
imagen.png

Aquí nuestra cuenta se crea con éxito.

2. Vídeo bajo demanda

1. Primeros pasos con el código

Carga basada en SDK nativo de OSS, consulte el documento: https://help.aliyun.com/zh/vod/user-guide/upload-media-files-by-using-oss-sdks?spm=a2c4g.11186623.0. 0.1f02273fj4lxNJ

VOD proporciona una variedad de métodos de carga para desarrolladores. El SDK de carga (servidor y cliente) encapsula la lógica básica relacionada con la carga, y solo necesita una configuración simple para realizar la función de carga. Se recomienda usar

La carga basada en el SDK nativo de OSS requiere que el desarrollador implemente toda la lógica de carga por sí mismo, lo que incluye obtener la dirección de carga y el certificado del servicio bajo demanda, decodificar en Base64 la dirección de carga y el certificado, y llamar a la capacidad de OSS para completar la carga.
Tomando como ejemplo la integración del SDK del servidor bajo demanda para obtener la dirección de carga y el certificado, el proceso de carga completo se muestra en la siguiente figura:
imagen.png
Detalles del proceso

  1. El servidor de aplicaciones de carga utiliza el método AK de usuario de RAM (ID de clave de acceso y secreto de clave de acceso) o AK temporal de STS para inicializar el cliente VOD.
  2. El servidor de aplicaciones de carga utiliza el SDK del servidor bajo demanda para llamar a la interfaz relacionada con la dirección de carga y el certificado para obtener la dirección de carga, el certificado de carga y la información de medios.
  3. El servicio bajo demanda devuelve la dirección de carga cifrada en Base64 (UploadAddress), el certificado de carga (UploadAuth) y la ID de medios en el resultado de la solicitud. El servidor de aplicaciones de carga puede analizar los parámetros de acuerdo con los resultados devueltos como parámetros de entrada para inicializar el SDK nativo de OSS.
  4. El servidor de aplicaciones de carga utiliza la dirección de carga analizada (UploadAddress) y la información de autorización (UploadAuth) para inicializar el cliente OSS a través de STS .
  5. El servidor de aplicaciones de carga utiliza el SDK de OSS para llamar a la interfaz relacionada con la carga de OSS para cargar archivos multimedia en la dirección de almacenamiento especificada.
  6. El servicio OSS devuelve el resultado de la carga.

Caso de entrada de Java: https://help.aliyun.com/zh/vod/user-guide/upload-media-files-by-using-oss-sdks?spm=a2c4g.11186623.0.0.24222dadolkgd8#section-iny-ln9 -m7z

<dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-core</artifactId>
      <version>4.6.0</version>
  </dependency>
  <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-vod</artifactId>
      <version>2.16.10</version>
  </dependency>
  <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.83</version>
  </dependency>
  <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-kms</artifactId>
      <version>2.10.1</version>
  </dependency>
  <dependency>
      <groupId>com.aliyun.oss</groupId>
      <artifactId>aliyun-sdk-oss</artifactId>
      <version>3.15.1</version>
  </dependency>

El siguiente es el código de entrada para subir videos basados ​​en OSS

import com.alibaba.fastjson.JSONObject;
import com.aliyun.oss.OSSClient;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.CreateUploadVideoRequest;
import com.aliyuncs.vod.model.v20170321.CreateUploadVideoResponse;
import org.apache.commons.codec.binary.Base64;

import java.io.File;

/**
 * descript
 */
public class UploadDemo {
    
    

    //初始化VOD客户端
    public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
    
    
        // 根据点播接入服务所在的Region填写,例如:接入服务在上海,则填cn-shanghai;其他区域请参见存储说明。
        String regionId = "cn-shanghai";
        DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        DefaultAcsClient client = new DefaultAcsClient(profile);
        return client;
    }
    //创建视频上传结果对象
    public static CreateUploadVideoResponse createUploadVideo(DefaultAcsClient vodClient) throws ClientException {
    
    
        CreateUploadVideoRequest request = new CreateUploadVideoRequest();
        request.setFileName("vod_test.mp4");
        request.setTitle("this is title");
        //设置请求超时时间
        request.setSysReadTimeout(1000);
        request.setSysConnectTimeout(1000);
        return vodClient.getAcsResponse(request);
    }

    //初始OSS客户端
    public static OSSClient initOssClient(JSONObject uploadAuth, JSONObject uploadAddress) {
    
    
        String endpoint = uploadAddress.getString("Endpoint");
        String accessKeyId = uploadAuth.getString("AccessKeyId");
        String accessKeySecret = uploadAuth.getString("AccessKeySecret");
        String securityToken = uploadAuth.getString("SecurityToken");
        return new OSSClient(endpoint, accessKeyId, accessKeySecret, securityToken);
    }
    //上传文件
    public static void uploadLocalFile(OSSClient ossClient, JSONObject uploadAddress, String localFile) {
    
    
        String bucketName = uploadAddress.getString("Bucket");
        String objectName = uploadAddress.getString("FileName");
        File file = new File(localFile);
        ossClient.putObject(bucketName, objectName, file);
    }

    public static void main(String[] argv) {
    
    
        //您的AccessKeyId
        String accessKeyId = "xxxxx";
        //您的AccessKeySecret
        String accessKeySecret = "xxxxx";
        //需要上传到VOD的本地视频文件的完整路径,需要包含文件扩展名
        String localFile = "D:\\临时资料\\xxx.mp4";
        try {
    
    
            // 初始化VOD客户端并获取上传地址和凭证
            DefaultAcsClient vodClient = initVodClient(accessKeyId, accessKeySecret);
            //创建一个相应对象
            CreateUploadVideoResponse createUploadVideoResponse = createUploadVideo(vodClient);
            // 执行成功会返回VideoId、UploadAddress和UploadAuth
            String videoId = createUploadVideoResponse.getVideoId();
            //解析拿到结果对象
            JSONObject uploadAuth = JSONObject.parseObject(decodeBase64(createUploadVideoResponse.getUploadAuth()));
            JSONObject uploadAddress = JSONObject.parseObject(decodeBase64(createUploadVideoResponse.getUploadAddress()));

            // 使用UploadAuth和UploadAddress初始化OSS客户端
            OSSClient ossClient = initOssClient(uploadAuth, uploadAddress);
            // 上传文件,注意是同步上传会阻塞等待,耗时与文件大小和网络上行带宽有关
            uploadLocalFile(ossClient, uploadAddress, localFile);
            System.out.println("Put local file succeed, VideoId : " + videoId);
        } catch (Exception e) {
    
    
            System.out.println("Put local file fail, ErrorMessage : " + e.getLocalizedMessage());
        }
    }

    private static String decodeBase64(String data) {
    
    
        return new String(Base64.decodeBase64(data));
    }
}

Tenga en cuenta que hay tres lugares que deben modificarse

  • accessKeyId : su AccessKeyId
  • accessKeySecret: su AccessKeySecret
  • String regionId = "cn-shanghai”; Esta es la región, debe ir a la consola de VOD - administración de almacenamiento para encontrar la dirección de carga. Por ejemplo, la mía es: East China Shanghai, entonces la regionId debe ser cn- xxxxxxx[.oss-cn-shanghai.aliyuncs.com](https://vod.console.aliyun.com/?spm=5176.12818093_-1363046575.top-nav.22.3be916d0sNjf6B#/storage/outin-e978d136329c11ee80ad00163e1a3b4a.oss-cn-shanghai.aliyuncs.com/manage)shanghai

Después de que la carga sea exitosa, puede ver la identificación del video desde la consola, que es necesaria para la reproducción.
imagen.png

2. Reproducir vídeo

Vaya a la consola VOD - biblioteca de medios - busque el video cargado
imagen.png
y haga clic en administrar - puede ver la situación básica del video en la información básica, incluida la identificación del video, la dirección de almacenamiento, haga clic en el código del reproductor web, el oficial proporciona el Script Html y JS
imagen.png
Cree un archivo pay.html en el escritorio de la computadora, luego copie el código del reproductor en él y luego especifique 2 cosas

  • vid: la identificación del video
  • payauth: credenciales de juego

imagen.png

3. Obtenga autenticación de pago

Nota oficial: copie el código y agregue el valor playauth antes de usarlo. Para saber cómo obtener playauth, consulte el documento para obtener el certificado de reproducción . Obtenemos el certificado de reproducción de acuerdo con el documento. La dirección del documento: https:/ /help.aliyun.com/zh/vod/developer -reference/api-vod-2017-03-21-getvideoplayauth , aquí puede intentar depurar primero: obtenga el certificado de reproducción
imagen.png
, ingrese a la página de depuración, seleccione la dirección del servidor, especifique la ID de video VideoId y luego haga clic para iniciar la llamada para obtener el certificado de reproducción.
imagen.png
Copie las credenciales de reproducción en el código del reproductor, actualice la página e intente reproducir, y se puede ver desde la red que se adopta el método de reproducción de video a pedido y en paralelo.
imagen.png

Puede descargar directamente el código oficial en la instancia de depuración-SDK para obtener el código del certificado de reproducción
imagen.png
y debe importar las dependencias.


<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>vod20170321</artifactId>
    <version>2.16.16</version>
</dependency>

Obtener código de cupón de juego

//获取播放凭证
public static String getPayAuth(String videoId) throws Exception {
    
    
    // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
    // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
    com.aliyun.vod20170321.Client client =
            createClient("你的accessKeyId", "你的accessKeySecrt");

    com.aliyun.vod20170321.models.GetVideoPlayAuthRequest getVideoPlayAuthRequest =
            new com.aliyun.vod20170321.models.GetVideoPlayAuthRequest().setVideoId(videoId);

    com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
    // 复制代码运行请自行打印 API 的返回值
    GetVideoPlayAuthResponse videoPlayAuthWithOptions = client.getVideoPlayAuthWithOptions(getVideoPlayAuthRequest, runtime);
    String playAuth = videoPlayAuthWithOptions.getBody().getPlayAuth();
    return playAuth;
}

Creo que ha terminado de ejecutar el proceso de acuerdo con el documento, y luego puede conectar el código a su proyecto

Supongo que te gusta

Origin blog.csdn.net/u014494148/article/details/132144301
Recomendado
Clasificación