2012-08-10 31 views
6

Tôi đang cố gắng xây dựng lại một tệp video từ máy chủ Phát trực tuyến mượt mà. Smooth Streaming cung cấp các tệp fMP4 là các tệp MP4 thông thường mà không có cả FTYP lẫn các nguyên tử MOOV của chúng.Xây dựng lại tệp MP4 từ nguyên tử MP4 "mdat" bị phân mảnh?

Tất cả thông tin được lưu trữ trong các nguyên tử đó được đặt vào tệp XML tệp kê khai mà tôi có.

Có cách nào để lập trình xây dựng lại các tập tin MP4 gốc, hoặc bằng cách:

  • xây dựng lại một tập tin mới trực tiếp từ H264/nội dung AAC nằm ở MDAT (và định dạng hình ảnh infos); hoặc
  • xây dựng lại FTYP và MOOV nguyên tử

Hoặc nếu không, là có một công cụ mà có thể hợp nhất fMP4?

Trả lời

3

Có. Nó là hoàn toàn có thể.

Bạn có thể thực hiện việc này bằng FFmpeg. Nghiên cứu mov.c [MP4 demuxer] từ libavformat.

Bạn sẽ cần phải hoàn thành MP4 trong bộ nhớ với tất cả dữ liệu bị "thiếu" trong fMP4. Nói cách khác, khi bạn cần một nguyên tử không tồn tại trong fMP4 [gần như tất cả], bạn sẽ phải nhập tất cả thông tin được mã hóa cứng (thông tin đó, hầu hết trong số chúng đến từ tệp kê khai).

Nó không dễ dàng ... nhưng chắc chắn nó có thể. Tôi đã tự làm. Rất tiếc, mã không phải là tài sản của tôi.

Chúc may mắn! ;-)

CẬP NHẬT: đặc tả định dạng PIFF sẽ rất hữu ích (http://go.microsoft.com/?linkid=9682897) để người ta có thể hiểu những gì đã có trong fMP4 và những gì không!

0

Thật đơn giản để xây dựng lại tệp mp4, nếu có tệp ism và ismc có liên quan đến tệp mp4 bị phân mảnh.

Yêu cầu bạn phải biết loại phương tiện, loại codec, dữ liệu codec cụ thể và thang thời gian của mỗi trak để xây dựng lại nguyên tử moov và ftyp.

những thông tin này có thể được truy lục từ tệp ism và ismc.

bạn có thể truy lục loại phương tiện của từng bản nhạc từ tệp ism. bạn có thể truy xuất loại codec, dữ liệu codec cụ thể và thang thời gian của từng bản nhạc từ tệp ismc.

chỉ cần nói, các tệp ism/ismc là dữ liệu meta cho máy chủ và máy khách để bạn có thể tạo lại dữ liệu meta (ftyp, moov atom) cho tệp mp4.

+0

Tôi có ism, ismc và ismv (tệp mp4 phân mảnh). Bạn nói đúng, chúng tôi có thể nhận được loại codec, dữ liệu codec cụ thể và quy mô thời gian của từng bản nhạc từ tệp ismc. Ngoài ra, thông tin này có thể được truy cập bằng cách thêm/Manifest trong url, như http: //localhost/pp/Test.ism/Manifest. Điều này sẽ trả về dữ liệu tệp kê khai. Bây giờ bạn có thể vui lòng cho tôi biết cách nào để tạo tệp MP4 từ này không? Ý tôi là, có bất kỳ thư viện hay đoạn mã nào có sẵn để làm điều này không. Tôi đang thử cùng một công việc kể từ 1 tháng trước và không có bất kỳ tiến bộ nào. Xin vui lòng cho tôi một ý tưởng. – waghekapil

Các vấn đề liên quan