All Products
Search
Document Center

ApsaraVideo VOD:FAQ tentang unggah aset media

Last Updated:Aug 28, 2026

Topik ini menjelaskan masalah umum dan solusinya terkait unggah aset media.

Apakah saya dapat menimpa atau mengganti video yang sudah ada dengan mengunggah video baru?

Tidak. ApsaraVideo VOD tidak mendukung penimpaan atau penggantian video yang sudah ada melalui unggahan video baru. Untuk memperbarui video, Anda harus mengunggah video baru sebagai file terpisah, yang akan menghasilkan VideoId baru. Anda kemudian perlu mengganti secara manual alamat referensi yang digunakan dalam sistem bisnis Anda dengan VideoId baru tersebut.

Mengapa file saya terjebak dalam status 'Uploading'?

Masalah ini dapat disebabkan oleh salah satu alasan berikut:

  • Penyebab 1: Unggah batch berbasis URL bersifat asynchronous.

    Jika Anda menggunakan operasi API UploadMediaByURL, unggahan tersebut merupakan tugas asinkron. Proses unggah tidak selesai secara real-time dan mungkin memerlukan beberapa jam bahkan berhari-hari hingga selesai. Operasi ini hanya didukung di wilayah China (Shanghai), China (Beijing), China (Shenzhen), Singapura, dan AS (Silicon Valley). Kami menyarankan agar Anda mengintegrasikan SDK unggah sisi server ApsaraVideo VOD untuk proses unggah.

  • Penyebab 2: Hanya kredensial unggah yang dihasilkan, tetapi file belum diunggah. Hal ini sering dijelaskan sebagai "operasi API CreateUploadVideo mengembalikan respons sukses, tetapi Konsol tetap menampilkan video sebagai 'Uploading'".

    Ketika Anda memanggil operasi API CreateUploadVideo, operasi tersebut hanya memperoleh kredensial unggah dan membuat informasi dasar untuk aset media. Operasi ini tidak mengunggah file. Pemanggilan operasi ini yang berhasil tidak berarti unggah file telah selesai. Anda harus menggunakan UploadAuth dan UploadAddress yang dikembalikan untuk memanggil SDK atau operasi API guna mengunggah file ke Object Storage Service (OSS). Untuk langkah-langkah lengkapnya, lihat Unggah file media dengan memanggil API ApsaraVideo VOD. Kami menyarankan agar Anda menambahkan log atau breakpoint dalam kode Anda untuk memastikan apakah langkah unggah file benar-benar dieksekusi dan memeriksa hasilnya.

  • Penyebab 3: File berukuran besar, sehingga waktu unggah menjadi lama.

    Periksa apakah ukuran file dan waktu yang dihabiskan dalam status 'Uploading' masuk akal. Saat Anda mengunggah file menggunakan Konsol, SDK unggah, atau tool klien, unggah multi-bagian digunakan secara default. Unggah multi-bagian mendukung file tunggal hingga 48,8 TB. SDK unggah juga menyediakan fitur unggah simple, yang mendukung file tunggal hingga 5 GB.

  • Penyebab 4: Masalah jaringan.

    Periksa apakah lebar pita jaringan Anda memenuhi persyaratan.

    ApsaraVideo VOD tidak memberlakukan batasan kecepatan unggah apa pun. Kecepatan unggah aktual bergantung pada bandwidth lokal dan kondisi jaringan Anda. Untuk file besar (misalnya yang lebih dari 700 MB), wajar jika unggah dan transkoding berikutnya memerlukan waktu lama. Kami menyarankan agar Anda memeriksa koneksi jaringan atau performa tool unggah Anda.

    Unggah cross-region (misalnya, mengunggah dari AS ke Singapura) sangat dipengaruhi oleh latensi jaringan. Tidak ada perkiraan waktu tetap yang dapat diberikan untuk skenario semacam ini.

    Jika video tetap berada dalam status 'Uploading' dalam waktu lama dan transkoding belum dimulai, biasanya karena file belum selesai diunggah. Sistem secara otomatis memicu transkoding hanya setelah unggah file selesai. Kami menyarankan agar Anda memeriksa progres unggah spesifik di console atau tool unggah, dan biarkan halaman unggah tetap aktif hingga proses unggah selesai.

    Jika console menampilkan indikator putar terus-menerus atau unggah terhenti, gunakan salah satu metode berikut untuk mendiagnosis masalah:

    • Tekan F12 untuk membuka developer tools browser, lalu periksa tab Network untuk mencari permintaan yang gagal atau respons error.

    • Gunakan tool packet capture seperti Wireshark untuk menganalisis permintaan jaringan klien dan mengidentifikasi masalah koneksi.

Mengapa Konsol tetap menampilkan "Uploading" setelah SDK VOD memicu callback onUploadSucceed?

Masalah ini biasanya disebabkan oleh file yang belum sepenuhnya diunggah ke Object Storage Service (OSS). Periksa apakah pengaturan content-length-range dalam PostPolicy Anda terlalu ketat; kami menyarankan agar Anda mengaturnya ke 5368709120 (5 GB). Pastikan juga jaringan lokal Anda normal dan file benar-benar telah selesai diunggah. Jika masalah tetap berlanjut, coba unggah ulang file tersebut.

Apa perbedaan antara setUploadAuthAndAddress dan resumeUploadWithAuth di JavaScript SDK?

Kedua metode ini melayani skenario unggah yang berbeda:

Pemecahan masalah jika tidak ada respons atau terjadi error:

  1. Periksa apakah uploadInfo.videoId memiliki nilai:

    • Jika memiliki nilai, server harus memanggil RefreshUploadVideo untuk memperbarui kredensial.

    • Jika kosong, panggil CreateUploadVideo di server untuk memperoleh kredensial baru.

  2. Verifikasi logika pemanggilan antarmuka depan:

    • Setelah memperoleh kredensial baru, Anda harus memanggil setUploadAuthAndAddress.

    • Setelah memperbarui kredensial yang sudah ada, Anda harus memanggil resumeUploadWithAuth.

  3. Periksa apakah izin dan parameter kredensial yang dikembalikan oleh server sudah benar.

Apa yang harus saya lakukan jika unggah gagal karena error kata sensitif atau pelanggaran nama file?

Penyebab: Saat Anda memanggil operasi API CreateUploadVideo, jika nama file video berisi kata sensitif, unggah akan diblokir atau verifikasi izin gagal.

Solusi: Ganti nama file video menjadi nama yang tidak mengandung kata sensitif, lalu panggil kembali operasi API CreateUploadVideo untuk memperoleh kredensial unggah baru.

Bagaimana cara menangani exception unggah konkuren atau masalah akhir masa maintenance pada SDK unggah Android/iOS?

Untuk SDK yang sudah akhir masa maintenance: Hindari membuat beberapa instans uploader secara bersamaan. Pastikan tugas unggah sebelumnya telah selesai sebelum memulai tugas berikutnya.

Exception null pointer pada SDK Android: SDK Android dapat melemparkan exception null pointer dan crash saat Anda melakukan beberapa pemanggilan dalam satu instans atau melakukan unggah konkuren dengan beberapa gambar. Ini adalah masalah yang diketahui yang disebabkan oleh konflik dalam proses internal release dan cancel. Kami menyarankan agar Anda menggunakan unggah sekuensial untuk menghindari risiko ini.

Mengapa mengunggah file non-video menunjukkan keberhasilan atau mengembalikan error 500 dalam callback?

Unggah berhasil untuk file non-video: File gambar dan audio merupakan jenis media yang didukung dan dapat diunggah secara normal. Jika jenis file yang sama sekali tidak terkait menunjukkan unggah berhasil, hal ini mungkin disebabkan oleh ekstensi file yang salah dikenali, logika unggah kustom yang melewati verifikasi, atau unggah API yang tidak mengaktifkan verifikasi format ketat. Kami menyarankan agar Anda memverifikasi daftar ekstensi file yang didukung.

Callback mengembalikan error 500: ApsaraVideo VOD tidak mendukung unggah dokumen teks seperti file .docx. Mencoba mengunggah file non-media semacam itu dan memicu callback akan menghasilkan error 500. Kami menyarankan agar Anda hanya mengunggah jenis media yang didukung seperti audio dan video, atau menonaktifkan konfigurasi callback yang tidak diperlukan di console.

Apakah banyaknya tugas unggah yang sedang berlangsung memengaruhi unggah pengguna lain? Bagaimana cara membersihkan tugas yang tidak valid?

Kemandirian tugas: Tugas unggah bersifat independen. Banyaknya tugas yang sedang berlangsung di latar belakang biasanya tidak memengaruhi unggah normal pengguna lain.

Pembersihan tugas tidak valid:

  • Jika Anda hanya memanggil API pembuatan kredensial tetapi tidak mengunggah file aktual, tugas tersebut akan tetap berada dalam status 'Uploading' selamanya dan tidak akan ditutup secara otomatis.

  • Tugas yang gagal karena gangguan unggah tidak dihapus secara otomatis.

Dalam kedua kasus tersebut, Anda harus membatalkan atau menghapus tugas tersebut secara manual di console.

Apa yang harus saya lakukan jika unggah gagal pada SDK iOS dengan error Error Domain=NSCocoaErrorDomain?

Kegagalan unggah dengan kode error 207 dan pesan error "Error Domain=NSCocoaErrorDomain" biasanya disebabkan oleh error pembacaan file akibat kurangnya izin. Untuk mengatasi masalah ini, gunakan salah satu metode berikut:

  • Metode 1: Berikan izin kepada SDK unggah iOS untuk membaca sumber daya lokal.

  • Metode 2: Simpan sumber daya lokal di path sandbox sebelum mengunggahnya.

Apa yang harus saya lakukan jika muncul error "The service is not open in current region" selama unggah batch berbasis URL?

Pesan error The service is not open in current region menunjukkan bahwa unggah batch berbasis URL tidak didukung di wilayah saat ini. Unggah batch berbasis URL saat ini hanya didukung di wilayah China (Shanghai) dan Singapura.

Jika Anda berada di wilayah lain, Anda dapat mengunduh file audio atau video ke komputer lokal Anda, lalu menggunakan SDK unggah untuk mengunggahnya. Untuk informasi lebih lanjut, lihat Ikhtisar SDK.

Mengapa saya tidak dapat melihat gambar yang diunggah di Konsol?

Saat Anda mengunggah aset media bertipe gambar, jika Anda mengatur tipenya menjadi cover (gambar mini video), file tersebut tidak ditampilkan di Konsol. Anda hanya dapat mengkueri gambar tersebut dengan memanggil operasi API. Untuk informasi lebih lanjut, lihat CreateUploadImage - Dapatkan URL dan kredensial unggah gambar.

Apa yang harus saya lakukan jika video yang diunggah dalam format MOV tidak dapat diputar, dan saya tidak dapat memperoleh URL-nya berdasarkan VideoId?

Masalah ini biasanya disebabkan oleh dukungan terbatas terhadap format MOV. Kami menyarankan agar Anda mentranskode video MOV ke format umum seperti MP4 sebelum mengunggahnya. Jika Anda perlu memperoleh URL pemutaran file sumber, panggil operasi GetMezzanineInfo untuk mendapatkan FileURL. Periksa juga apakah Anda menggunakan versi SDK terbaru (misalnya versi vod20170321 3.6.4) dan lakukan upgrade jika diperlukan, serta rujuk demo resmi untuk pengujian dan verifikasi.

Masalah kompatibilitas unggah JS SDK di WeChat

Masalah ini terjadi karena adanya masalah kompatibilitas dengan HTML5 di browser WeChat. Untuk mengatasi masalah ini, hapus parameter multiple="" dari <input type="file" name="file" id="files" multiple=""> untuk memastikan unggah berhasil.

Apa yang harus saya lakukan jika onUploadProgress tidak dipicu dan tidak ada error yang dilaporkan saat saya mengunggah menggunakan Web SDK?

Pecahkan masalah ini dengan urutan berikut:

  1. Periksa lingkungan browser Anda: Nonaktifkan ekstensi pemblokir iklan (seperti AdBlock atau uBlock Origin), atau tambahkan domain Alibaba Cloud ke daftar izin ekstensi tersebut. Jika Anda menggunakan Microsoft Edge, nonaktifkan sementara Tracking prevention atau Enhanced security mode untuk menguji apakah masalah masih berlanjut.

  2. Periksa logika kode SDK Anda: Konfirmasi apakah uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress, videoId) dipanggil secara sinkron dalam callback onUploadStarted.

  3. Verifikasi format dan validitas parameter: Periksa apakah uploadAuth dan uploadAddress merupakan string Base64 yang valid, apakah strukturnya sesuai dengan demo resmi, dan apakah kredensial masih dalam periode validitas 30 menit.

  4. Cetak nilai parameter aktual yang diteruskan ke setUploadAuthAndAddress, lalu periksa apakah ada nilai yang kosong atau memiliki format yang tidak terduga.

Apa yang harus saya lakukan jika unggah yang dapat dilanjutkan gagal dengan AccessDenied, atau muncul pesan yang menunjukkan bahwa role AliyunVodSaasStsRole tidak ada?

Anda tidak perlu membuat role AliyunVodSaasStsRole secara manual. Error AccessDenied biasanya disebabkan oleh salah satu alasan berikut:

  1. Setelah kredensial diperbarui, UploadAuth baru tidak diteruskan ke metode resumeUploadWithAuth.

  2. Saat Anda menggunakan SDK OSS native, UploadAuth dan UploadAddress tidak didekode Base64.

  3. Token STS telah kedaluwarsa atau tidak memiliki izin yang cukup.

  4. Path file unggah tidak sesuai dengan path yang diizinkan dalam kebijakan STS (misalnya folder sv alih-alih folder customerTrans).

Izin yang diperlukan adalah oss:PutObject. Untuk mengatasi masalah ini:

  • Pastikan path unggah sesuai dengan path yang diizinkan dalam kebijakan RAM atau STS, atau perbarui kebijakan untuk menyertakan direktori unggah aktual.

  • Periksa logika penerusan dan decoding kredensial dalam kode Anda.

  • Konfirmasi bahwa token masih dalam periode validitasnya.

Halaman pratinjau meregang pada resolusi tertentu dengan Push SDK

Saat Anda memilih resolusi 480p di Push SDK, halaman pratinjau tampak meregang, tetapi stream ingest aktual normal. Hal ini terjadi karena 480p sesuai dengan resolusi 480 × 640. Rasio aspek tersebut tidak didukung oleh sebagian besar layar ponsel, sehingga menyebabkan peregangan.

Solusi: Ubah rasio aspek SurfaceView di halaman pratinjau. Ubah konten file activity_push.xml sebagai berikut.


public void initView() {
    mPreviewView = (SurfaceView) findViewById(R.id.preview_view);
    mPreviewView.getHolder().addCallback(mCallback);
}

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <SurfaceView
            android:id="@+id/preview_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    <!--FrameLayout-->
        <!--android:id="@+id/publisher_fragment"-->
        <!--android:layout_width="match_parent"-->
        <!--android:layout_height="match_parent"-->
        <!--android:visibility="gone"/>-->

    <android.support.v4.view.ViewPager
            android:id="@+id/tv_pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >
    </android.support.v4.view.ViewPager>
</RelativeLayout>

Cara melihat dan mengimpor data paket AAR di Android Studio

Untuk melihat data paket AAR, ubah ekstensi file dari .aar menjadi .zip lalu ekstrak file tersebut. Setelah itu, Anda dapat melihat isinya, seperti file .class, file .xml, file .jar, gambar, dan teks.

Untuk mengimpor data paket AAR:

  1. Salin file .aar ke folder proyek Anda, biasanya ke path projectName/libs/, lalu muat ulang proyek. Salin file library, seperti AlivcPlayer.aar, aliyun-vod-upload-android-sdk-1.1.1.jar, aliyun-vod-croe-android-sdk-1.2.1.jar, gson-2.8.0.jar, dan jsr305-3.0.0.jar, ke direktori app > libs proyek Anda, lalu muat ulang proyek.

  2. Di file build.gradle, tambahkan path repositori lokal di bawah tag root dan tambahkan dependensi compile di blok `dependencies`.

    Nama direktori libs bergantung pada folder tempat paket diimpor ke proyek Anda. Di parameter compile, name menentukan nama file AAR, dan ext menentukan ekstensi file.

    
    repositories{
        flatDir{
            dirs 'libs'
        }
    }
    
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:26+'
        compile 'com.android.support:design:26+'
        compile (name:'AlivcPlayer',ext:'aar')
        // SDK unggah bergantung pada SDK unggah OSS
        compile 'com.aliyun.dpa:oss-android-sdk:2.4.5'
    }
    
  3. Pilih Build > Rebuild untuk membangun ulang proyek.

    Setelah pembangunan selesai, paket AAR yang diimpor muncul di bagian External Libraries proyek.

    
    External Libraries
    ├── Android API 26 Platform
    ├── JRE 1.8
    ├── AlivcPlayer:@aar
    │   ├── classes.jar (library root)
    │   │   └── com
    │   │       ├── alivc.player
    │   │       └── aliyun.aliyunplayer
    │   └── res (library root)
    │       ├── values
    │       └── values-zh-rCN
    ├── com.aliyun.dpa:oss-android-sdk-2.4.5
    ├── com.android.support:animated-vector-drawable:26.0.0-alpha1
    ├── com.android.support:appcompat-v7:26.0.0-alpha1
    ├── com.android.support:design:26.0.0-alpha1
    ├── com.android.support:recyclerview-v7:26.0.0-alpha1
    ├── com.android.support:support-annotations:26.0.0-alpha1
    └── com.android.support:support-compat:26.0.0-alpha1
    

Apakah wajar jika unggah batch berbasis URL memerlukan waktu lama untuk selesai?

Unggah batch berbasis URL merupakan tugas asinkron. Sistem harus terlebih dahulu mengunduh file dari URL sumber lalu mengunggahnya ke ApsaraVideo VOD. Untuk file besar, atau ketika bandwidth server sumber terbatas, proses ini dapat memakan waktu beberapa jam. Ini merupakan perilaku yang diharapkan. Kami menyarankan agar Anda melakukan tindakan berikut:

  • Konfirmasi bahwa URL sumber dapat diakses melalui Internet dan kecepatan unduhnya normal.

  • Untuk file besar yang harus tersedia dengan cepat, gunakan SDK unggah sisi server atau SDK unggah sisi klien sebagai gantinya.

Mengapa tidak ada VideoId yang dihasilkan setelah unggah sisi server, atau mengapa host diselesaikan ke localhost?

Kedua gejala ini biasanya disebabkan oleh konfigurasi wilayah yang salah saat klien unggah diinisialisasi. Saat Anda menginisialisasi vodClient, atur secara eksplisit regionId yang benar, seperti cn-beijing, dan gunakan titik akhir publik wilayah tersebut. Hal ini mencegah resolusi nama domain yang salah.

Apa yang harus saya lakukan jika muncul error jaringan selama unggah melalui Konsol atau halaman web?

Error jaringan biasanya terkait dengan browser atau lingkungan jaringan lokal. Coba langkah berikut:

  • Beralih ke browser atau jaringan yang berbeda, lalu coba unggah lagi.

  • Konfirmasi bahwa jaringan lokal Anda dapat menyelesaikan domain unggah OSS. Anda dapat menggunakan perintah ping untuk memverifikasi hal ini.

  • Jika masalah tetap berlanjut, gunakan SDK unggah sisi server untuk mengunggah file sebagai gantinya.

Kebijakan jaringan apa saja yang perlu saya izinkan jika koneksi ke domain OSS mengalami timeout selama unggah video?

Selain mengizinkan port 443 pada vod.cn-shanghai.aliyuncs.com, Anda juga perlu mengizinkan port 443 pada domain OSS tujuan aktual untuk unggah (misalnya, outin-*.oss-cn-shanghai.aliyuncs.com). Kami menyarankan agar Anda juga mengizinkan port 443 pada vod-upload.cn-shanghai.aliyuncs.com (titik akhir unggah) dan sts.cn-shanghai.aliyuncs.com (digunakan untuk memperoleh kredensial temporary). Jika server Anda ditempatkan dalam VPC, Anda perlu mengonfigurasi gerbang NAT atau EIP untuk mengakses domain publik tersebut.

Apakah ApsaraVideo VOD menyediakan nilai hash MD5 atau CRC-64 dari video yang diunggah?

Tidak. ApsaraVideo VOD tidak menyediakan fitur untuk mengkueri nilai hash MD5, CRC-64, atau nilai hash lain dari video yang diunggah. Jika bisnis Anda memerlukan verifikasi integritas file, kami menyarankan agar Anda menghitung dan mencatat nilai hash di sisi klien atau server sebelum mengunggah file.

Tautan terkait

Untuk informasi lebih lanjut tentang alur unggah dan petunjuknya, lihat dokumen berikut:

  • Untuk informasi lebih lanjut tentang cara mengunggah file menggunakan Konsol ApsaraVideo VOD atau tool unggah PC, lihat Unggah menggunakan tool.

  • Untuk informasi lebih lanjut tentang cara mengunggah file menggunakan SDK unggah ApsaraVideo VOD, SDK OSS native, unggah batch berbasis URL, atau operasi API OSS, lihat Unggah berbasis developer.