Mengapa video H.264 jauh lebih cepat dalam wadah FLV daripada dalam wadah MP4?

9

Saya mengembangkan situs tabung, dan saat ini mengalami masalah dengan format H.264. Saya perhatikan bahwa YouTube meletakkan video hi-def mereka ke dalam wadah MP4, jadi secara logis saya melakukan hal yang sama.

Selanjutnya, saya menginstal mod_h264_streaminglighttpd untuk membuat streaming dan scrubbing bekerja.

Masalahnya adalah bahwa file besar (> 500MB pada resolusi agak tinggi) membutuhkan waktu lama bahkan untuk memulai buffering (saya membaca bahwa Flowplayer dan pemutar Flash lainnya perlu mengunduh metadata terlebih dahulu). Saya memindahkan atom xmov ke bagian depan file dengan MP4Box (saya juga mencoba Qt QuickStart), tetapi itu tidak membantu.

Selanjutnya, saya membaca bahwa saya perlu interleave trek audio, jadi saya juga melakukannya. Ini tidak menyebabkan perubahan: video masih lambat.

Jadi saya mencoba menempatkan film H.264 yang sama persis ke dalam wadah FLV, dan buffering pemutaran dimulai hampir secara instan - tidak ada kelambatan.

Jadi apa yang saya lewatkan di sini? Mengapa saya memilih wadah MP4 dengan modul mod_264_streaming, yang tampaknya super lambat, daripada wadah FLV biasa dengan built-in lighttpd mod_flv_streaming? Jelas, banyak situs web yang memilih wadah MP4, tetapi saya tidak mengerti mengapa.

Dan sebagai pertanyaan sampingan, saya mencoba menggunakan <video>tag HTML5 untuk mencoba film H.264 MP4 yang sama, dan penggosokannya sangat cepat ! Saya melihat ke file log lighttpd, dan saya perhatikan bahwa pemain Flash menambahkan video.mp4?start=234setiap kali timeline dihapus, sedangkan browser menggunakan <video>tag HTML5 asli tidak melakukan hal seperti itu. Apakah ini semacam batasan Flash? Mengapa streaming Flash tidak secepat streaming HTML5?

Gotys
sumber

Jawaban:

4

TL; DR: MP4 digunakan ketika situs video menyimpan lebih banyak metadata dalam video daripada dukungan FLV, atau menggunakan codec audio yang tidak didukung FLV. Kesederhanaan dan desain streaming FLV menjadikannya pilihan yang baik jika Anda tidak memiliki alasan yang baik untuk menggunakan MP4.

Sedangkan untuk menggosok timeline flash, saya tidak tahu mengapa ia melakukan itu karena saya tidak pernah mengkodekan flash, tetapi mungkin itu adalah tombol yang digunakannya, atau sesuatu yang bekerja secara khusus dengan server streaming adobe untuk mencari dalam file. Ini juga berfungsi sebagai cara untuk menghentikan pengguna sial dari menjaga file pada disk-nya.


Beberapa hal yang sudah Anda ketahui:

Ada perbedaan mendasar antara wadah FLVdan MP4(alias isomedia). FLV dirancang oleh Adobe sejak awal sebagai wadah streaming, dan sangat sederhana . Yang dilakukannya hanyalah mengirim paket video, lalu paket audio, lalu paket video ... Namun, hanya mendukung sangat sedikit codec, dan tidak ada metadata selain cap waktu dalam milidetik. Kecuali Anda membutuhkan fitur khusus MP4, Anda akan baik-baik saja dengan FLV.

Media ISO, di sisi lain, didasarkan pada wadah MOV Apple. Ini dipisahkan dalam atom, dan ada atom tertentu moov, yang perlu diterjemahkan sebelum atom lain dapat dibaca. Masalah yang Anda alami dengan MP4 adalah karena moovatom ditulis di akhir file, yang jauh lebih mudah dilakukan untuk program pengkodean. Ada alat-alat, seperti qtfaststart , yang akan melakukan munging yang diperlukan untuk meletakkan moovatom di awal file. Dengan demikian, file akan mulai diputar segera setelah memiliki data, alih-alih harus diunduh sepenuhnya sebelum memulai.

Jessidhia
sumber
0

Jika Anda menggunakan wadah bergerak, itu mengalir keluar dari kotak tanpa perlu menginstal modul atau menempatkan ke dalam wadah flv dan menggunakan modul. Hanya pikiran saya saja. Gunakan mov dan tambahkan tipe mime yang sesuai - selesai.

RobotHumans
sumber