视频转码

更新时间:2025-03-11 09:53:49

本文介绍了利用智能媒体管理(IMM)媒体转码接口来实现视频转码的能力。

功能简介

视频转码通过将已压缩编码的视频码流转换为另一种视频码流,将视频格式、封装、分辨率、帧率及码率等参数转换为适合不同设备和平台播放,同时降低文件大小以优化传输效率的过程。

image

使用场景

  • 多设备兼容性:为确保视频能够在不同设备(如手机、平板、电脑、智能电视等)上顺利播放,转码技术能够将视频转换为符合特定设备所支持的格式。

  • 流媒体播放:流媒体服务需要将视频转码为多种格式和比特率,以便根据用户的网络状况进行动态调整,从而提升观看体验。

  • 视频压缩:在确保视频质量的前提下,通过转码技术降低文件大小,以便于存储和传输,尤其是在网络带宽受限的情况下。

支持音视频格式列表

分类

格式

分类

格式

音频

AAC、MP3、WAV、FLAC、WMA、AC3、OPUS等所有主流格式。

视频

MP4、MPEG-TS、MKV、MOV、AVI、FLV、M3U8、WebM、WMV、RM、VOB等所有主流格式。

如何使用

前提条件

步骤一:上传文件

请使用OSS管理控制台将媒体文件上传至IMM项目所在地域的Bucket。

image

步骤二:使用IMM视频转码

调用CreateMediaConvertTask - 创建媒体转码任务接口创建视频转码任务。

参数说明

以下示例以IMM项目test-project为基础,使用视频文件oss://test-bucket/video-demo/蜀山区商业大楼.mov进行视频转码处理。

更多有关媒体处理各功能介绍和使用,请参见概述

说明
  • 您可以通过OpenAPI 门户使用媒体转码接口对视频文件进行处理,可参考SDK代码。

  • 为实现最佳的播放兼容性,推荐转码为 mp4 或者 hls,并设置视频 Codec 为 h264 且PixelFormat 为 yuv420p,音频 Codec 为 aac 且 Channel 为 2。

  • 转码过程将不可避免地导致视频画面质量的下降。您可以通过 Bitrate 和 CRF 参数来调控转码后的视频画面质量。一般而言,画面质量越高,文件大小也会相应增大。

  • h265相较于h264具有更优越的压缩效率。在视频画面质量相同的条件下,h265通常能够比h264节省超过30%的存储空间和带宽成本。然而,h265的使用必须在播放器兼容的前提下进行。

  • Codec 参数不设置时默认为 copy,为 copy 时,表示将需要处理的视频流直接拷贝到输出文件,此时 TranscodeVideo 下的其余参数无效。copy 不可用于视频转码,通常应用于转封装场景。

  • TargetsURI文件名建议使用变量设置输出文件路径,相关变量请参见TargetURI模板

转码为mp4

将视频转为mp4格式,且不改变分辨率、帧率等视频参数。

image

转码信息

  • 视频格式:mov -> mp4

  • 视频配置:CRF设置为24,保持原有分辨率与帧率等视频参数

  • 音频配置:aac格式,码率96Kbps,双声道,采样率44.1kHz

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼.mp4

  • 转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic”

SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。

请求参数如下

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.mov"
    }
  ],
  "Targets": [
    {
      "Audio": {
        "TranscodeAudio": {
          "Bitrate": 96000,
          "Channel": 2,
          "Codec": "aac",
          "SampleRate": 44100
        }
      },
      "Container": "mp4",
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.mp4",
      "Video": {
        "TranscodeVideo": {
          "CRF": 24,
          "Codec": "h264",
          "PixelFormat": "yuv420p"
        }
      }
    }
  ]
}

转码为1920x1080分辨率30fpshls格式视频

将视频转码为1920x1080分辨率、30fpsH.265视频,使用HLS格式切片,当源视频分辨率与帧率不足时遵循源视频参数。

image

转码信息

  • 视频格式:mov -> m3u8

  • 切片:hls格式,切片时长10s

  • 视频配置:h265编码格式,CRF设置为24,分辨率1920x1080,帧率30

  • 音频配置:aac格式,码率128Kbps,双声道,采样率44.1kHz

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼.m3u8oss://test-bucket/video-demo/蜀山区商业大楼-%d.ts

  • 转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic”

SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。

请求参数如下

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.mov"
    }
  ],
  "Targets": [
    {
      "Audio": {
        "TranscodeAudio": {
          "Bitrate": 128000,
          "Channel": 2,
          "Codec": "aac",
          "SampleRate": 44100
        }
      },
      "Container": "ts",
      "Segment": {
        "Duration": 10,
        "Format": "hls"
      },
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.{autoext}",
      "Video": {
        "TranscodeVideo": {
          "AdaptiveResolutionDirection": true,
          "CRF": 24,
          "Codec": "h265",
          "FrameRate": 30,
          "FrameRateOption": "adaptive",
          "PixelFormat": "yuv420p",
          "Resolution": "1920x1080",
          "ResolutionOption": "adaptive",
          "ScaleType": "fit"
        }
      }
    }
  ]
}

转码为1080p、720p、480p三个分辨率的hls视频

将视频转码为1080p、720p、480p三个分辨率的视频,使用HLS格式切片。

image

转码信息

转码前

  • 视频格式:mov

  • 视频编码格式:h264

  • 分辨率:3840x2160

  • 帧率:30

转码后

转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic”

视频1

  • 视频格式:m3u8

  • 切片:hls格式,切片时长10s

  • 视频配置:h264编码格式,CRF设置为25,分辨率1920x1080,帧率30

  • 音频配置:aac格式,码率256Kbps,双声道,采样率44.1kHz

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼-x1080.m3u8oss://test-bucket/video-demo/蜀山区商业大楼-x1080-%d.ts

视频2

  • 视频格式:m3u8

  • 切片:hls格式,切片时长10s

  • 视频配置:h264编码格式,CRF设置为26,分辨率1280x720,帧率30

  • 音频配置:aac格式,码率128Kbps,双声道,采样率44.1kHz

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼-x720.m3u8oss://test-bucket/video-demo/蜀山区商业大楼-x720-%d.ts

视频3

  • 视频格式:m3u8

  • 切片:hls格式,切片时长10s

  • 视频配置:h264编码格式,CRF设置为28,分辨率854x480,帧率25

  • 音频配置:aac格式,码率96Kbps,双声道,采样率44.1kHz

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼-x480.m3u8oss://test-bucket/video-demo/蜀山区商业大楼-x480-%d.ts

SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。

请求参数如下

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.mov"
    }
  ],
  "Targets": [
    {
      "Audio": {
        "TranscodeAudio": {
          "Bitrate": 256000,
          "Channel": 2,
          "Codec": "aac",
          "SampleRate": 44100
        }
      },
      "Container": "ts",
      "Segment": {
        "Duration": 10,
        "Format": "hls"
      },
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼-{resolution}.{autoext}",
      "Video": {
        "TranscodeVideo": {
          "AdaptiveResolutionDirection": true,
          "CRF": 25,
          "Codec": "h264",
          "FrameRate": 30,
          "FrameRateOption": "adaptive",
          "PixelFormat": "yuv420p",
          "Resolution": "x1080",
          "ResolutionOption": "adaptive",
          "ScaleType": "fit"
        }
      }
    },
    {
      "Audio": {
        "TranscodeAudio": {
          "Bitrate": 128000,
          "Channel": 2,
          "Codec": "aac",
          "SampleRate": 44100
        }
      },
      "Container": "ts",
      "Segment": {
        "Duration": 10,
        "Format": "hls"
      },
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼-{resolution}.{autoext}",
      "Video": {
        "TranscodeVideo": {
          "AdaptiveResolutionDirection": true,
          "CRF": 26,
          "Codec": "h264",
          "FrameRate": 30,
          "FrameRateOption": "adaptive",
          "PixelFormat": "yuv420p",
          "Resolution": "x720",
          "ResolutionOption": "adaptive",
          "ScaleType": "fit"
        }
      }
    },
    {
      "Audio": {
        "TranscodeAudio": {
          "Bitrate": 96000,
          "Channel": 2,
          "Codec": "aac",
          "SampleRate": 44100
        }
      },
      "Container": "ts",
      "Segment": {
        "Duration": 10,
        "Format": "hls"
      },
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼-{resolution}.{autoext}",
      "Video": {
        "TranscodeVideo": {
          "AdaptiveResolutionDirection": true,
          "CRF": 28,
          "Codec": "h264",
          "FrameRate": 25,
          "FrameRateOption": "adaptive",
          "PixelFormat": "yuv420p",
          "Resolution": "x480",
          "ResolutionOption": "adaptive",
          "ScaleType": "fit"
        }
      }
    }
  ]
}

转码为mp4并添加水印

将视频转码为mp4格式,并在视频左上角添加水印Logo,在视频右下角添加水印文字。

image

转码信息

  • 视频格式:mov -> mp4

  • 视频配置:h264编码格式,CRF设置为25,保持原有分辨率与帧率等视频参数。在左上角添加阿里云LOGO图片水印,在右下角添加“智能媒体管理”文字水印。

  • 音频配置:aac格式,码率为256 Kbps,双声道,采样率为44.1 kHz。

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼.mp4

  • 转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic”

SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。

请求参数如下

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.mov"
    }
  ],
  "Targets": [
    {
      "Audio": {
        "TranscodeAudio": {
          "Bitrate": 256000,
          "Channel": 2,
          "Codec": "aac",
          "SampleRate": 44100
        }
      },
      "Container": "mp4",
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.{autoext}",
      "Video": {
        "FilterVideo": {
          "Delogos": [],
          "Watermarks": [
            {
              "Dx": 0.05,
              "Dy": 0.1,
              "ReferPos": "topleft",
              "Type": "file",
              "URI": "oss://test-bucket/video-demo/aliyun.png",
              "Width": 0.1
            },
            {
              "Content": "智能媒体管理",
              "Dx": 0.05,
              "Dy": 0.1,
              "FontColor": "#FFFFFF",
              "FontSize": 100,
              "ReferPos": "bottomright",
              "Type": "text"
            }
          ]
        },
        "TranscodeVideo": {
          "CRF": 25,
          "Codec": "h264",
          "PixelFormat": "yuv420p"
        }
      }
    }
  ]
}

截取视频的部分片段转码为flv格式

截取源视频的部分片段转码为FLV格式,将码率调整为1Mbps。

image

转码信息

  • 视频格式:mov -> flv

  • 截取开始时间:5s

  • 截取时长:10s

  • 视频配置:码率为1Mbps,以保持原有的分辨率、帧率及其他视频参数。

  • 音频配置:aac格式,码率96Kbps,双声道,采样率44.1kHz

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼.flv

  • 转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic”

SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。

请求参数如下

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "Duration": 10,
      "StartTime": 5,
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.mov"
    }
  ],
  "Targets": [
    {
      "Audio": {
        "TranscodeAudio": {
          "Bitrate": 96000,
          "Channel": 2,
          "Codec": "aac",
          "SampleRate": 44100
        }
      },
      "Container": "flv",
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.{autoext}",
      "Video": {
        "TranscodeVideo": {
          "Bitrate": 1000000,
          "Codec": "h264",
          "PixelFormat": "yuv420p"
        }
      }
    }
  ]
}

将视频转封装为mp4

将视频转封装为mp4,转封装不改变音视频数据内容,可能存在播放兼容性问题。

转码信息

  • 视频格式:mov -> mp4

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼.mp4

  • 转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic”

SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。

请求参数如下

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.mov"
    }
  ],
  "Targets": [
    {
      "Container": "mp4",
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.{autoext}"
    }
  ]
}

将视频水印区域打马赛克

将视频左上角水印logo区域和右下角水印文字区域打上马赛克。

image

转码信息

  • 输入视频路径:oss://test-bucket/video-demo/蜀山区商业大楼.mp4

  • 视频配置:h264编码格式,CRF设置为24,保持原有分辨率、帧率等视频参数,并对左上角的LOGO区域和右下角的文字水印区域进行马赛克处理。

  • 音频配置:aac格式,码率为96 Kbps,双声道,采样率为44.1 kHz。

  • 输出视频保存路径:oss://test-bucket/video-demo/蜀山区商业大楼-mosaic.mp4

  • 转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic”

SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。

请求参数如下

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼.mp4"
    }
  ],
  "Targets": [
    {
      "Audio": {
        "TranscodeAudio": {
          "Bitrate": 96000,
          "Channel": 2,
          "Codec": "aac",
          "SampleRate": 44100
        }
      },
      "Container": "mp4",
      "URI": "oss://test-bucket/video-demo/蜀山区商业大楼-mosaic.{autoext}",
      "Video": {
        "FilterVideo": {
          "Delogos": [
            {
              "Dx": 0.05,
              "Dy": 0.1,
              "Height": 0.1,
              "ReferPos": "topleft",
              "Width": 0.1
            },
            {
              "Dx": 0.05,
              "Dy": 0.1,
              "Height": 100,
              "ReferPos": "bottomright",
              "Width": 600
            }
          ],
        },
        "TranscodeVideo": {
          "CRF": 24,
          "Codec": "h264",
          "PixelFormat": "yuv420p"
        }
      }
    }
  ]
}
  • 本页导读 (1)
  • 功能简介
  • 使用场景
  • 支持音视频格式列表
  • 如何使用
  • 前提条件
  • 步骤一:上传文件
  • 步骤二:使用IMM视频转码
  • 参数说明
  • 转码为mp4
  • 转码为1920x1080分辨率30fps的hls格式视频
  • 转码为1080p、720p、480p三个分辨率的hls视频
  • 转码为mp4并添加水印
  • 截取视频的部分片段转码为flv格式
  • 将视频转封装为mp4
  • 将视频水印区域打马赛克
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等