2012-03-31 37 views
9

Tôi đã sử dụng nhiều thứ đa phương tiện trong tuần trước và bây giờ đã bị rối tung trong vài câu hỏi.Những điều này liên quan đến công việc của tôi về Phát triển các câu hỏi Media Player.My dưới đây chỉ dựa trên điều đó. Tôi cũng đang tìm kiếm sách điện tử/tài nguyên trên codec đa phương tiện?Khái niệm về Codec đa phương tiện (Container, Định dạng, Codec, Muxer, Demuxer)

Tôi đang tìm thông tin sau?

  1. Sự khác nhau giữa khung chứa, định dạng, codec, gói, là gì? Tôi tin rằng nó là container -> Audio (suối) + Mã số (suối)

Streams được mã hóa/giải mã bằng cách sử dụng codec Streams -> Gói gói -> Khung

(2) như thế nào muxer, demuxer, coder, decoder ladder hoạt động ở bên nào?

(3) Khi chúng tôi nói một codec mới - Điều đó có nghĩa là gì? - Bộ giải mã/bộ giải mã hoặc định dạng tệp mới.AVI là codec hay định dạng? Có bất kỳ mối quan hệ nào giữa codec mà chúng tôi đang sử dụng và định dạng tệp hay không.

(4) Trong một bộ giải mã nào khác với codec khác? Chơi bit rate, size, quality, fps?

(5) Nếu chúng tôi đang phát triển một codec mới, những gì phải khác nhau? - Thuật toán cho bộ mã hóa và bộ giải mã?

(6) Sao chép đĩa Blu-ray và DVD? Định dạng mới là gì? Hoặc Codec mới?

(7) Nếu tôi muốn cung cấp hỗ trợ cho các Codec ở trên trong trình phát đa phương tiện, tôi sẽ tích hợp các Codec khác nhau như thế nào?

(8) Khung đa phương tiện khác nhau (Gstremaer, ffmpeg, stagefright, OpenCore) khác với codec như thế nào.

Tiếp theo là/là các liên kết tôi đã trải qua:

http://dranger.com/ffmpeg/tutorial01.html

Trả lời

22

Dưới đây là một nguồn tài nguyên trực tuyến miễn phí để bắt đầu với (tiết lộ đầy đủ: Tôi chạy các trang web :-)): MultimediaWiki. Hơn nữa, đây là một tài liệu tôi đã viết một thời gian dài trước đây mà có thể giúp với rất nhiều câu hỏi của bạn: Multimedia Technology Basics. Tôi sẽ cố gắng trả lời câu hỏi của bạn ở đây.

1) Định dạng vùng chứa (như AVI hoặc QuickTime/MOV) thường chứa (chứa) các luồng khác nhau, thường là ít nhất một luồng video và một luồng âm thanh. Các luồng video và âm thanh này thường được mã hóa bằng codec, là một thuật toán mô tả phương pháp hiệu quả hơn để mã hóa dữ liệu. Các gói và khung hình: Đôi khi, khối dữ liệu video hoặc âm thanh được chia thành các gói hoặc khung như được xác định bởi thông số kỹ thuật codec của chúng, nhưng điều này có xu hướng giảm xuống ngữ nghĩa-- các gói, khung, khối, tất cả chỉ là các phần.

2) Khi bạn tạo tệp đa phương tiện, bạn sử dụng thuật toán mã hóa để mã hóa dữ liệu video và âm thanh, sau đó bạn sử dụng muxer để đặt các luồng lại với nhau thành một tệp (vùng chứa). Để phát tệp, trình demuxer tách các luồng và cung cấp chúng thành bộ giải mã để lấy dữ liệu video và âm thanh.

3) Codec nghĩa là bộ mã hóa/bộ giải mã và là một khái niệm riêng biệt từ định dạng vùng chứa.Nhiều định dạng chứa có thể chứa nhiều loại định dạng khác nhau (AVI và QuickTime/MOV rất chung chung). Các định dạng khác được giới hạn ở một hoặc hai loại phương tiện.

4) Codec cạnh tranh trên nhiều yếu tố và được thiết kế cho nhiều mục đích. Một sự khác biệt lớn là mất mát so với lossless. Nếu bạn cần phải giữ lại tất cả các thông tin ban đầu, bạn chọn một định dạng lossless, nhưng bạn sẽ không nhận được nén tốt nhất. Nếu bạn có thể đủ khả năng để mất một số dữ liệu, bạn có thể chọn một định dạng lossy mà sẽ hy sinh (hy vọng rằng không thể nhận thấy, để con người) thông tin để đổi lấy nén lớn hơn. Một số codec được tối ưu hóa cho các loại dữ liệu khác nhau, chẳng hạn như codec thoại cho rằng dữ liệu đầu vào là con người nói hoặc codec video màn hình, giả định video đầu vào là phiên máy tính để bàn tương đối tĩnh.

5) Tạo codec mới sẽ ngụ ý một thuật toán mới yêu cầu bộ giải mã và bộ giải mã mới.

6) Tôi nghĩ rằng những điều này sẽ được tính là vùng chứa. Một rip DVD có thể được gọi là một dòng chương trình MPEG (MPEG-PS), có khả năng chứa dữ liệu video MPEG-2 và một trong một vài loại âm thanh khác nhau.

7) Có rất nhiều thư viện để phát nội dung này. Đầu tiên và quan trọng nhất, bạn cần phải xem xét nền tảng của bạn (Windows, Mac OS X, Linux, iOS, Android, v.v.). Có các thư viện và khung thích hợp trên mỗi thư viện.

8) Một lần nữa, nhiều khung và thư viện đó có thể sẽ đáp ứng nhu cầu của bạn. Nó phụ thuộc vào nhu cầu cấp phép và nền tảng của bạn.

Tôi hy vọng điều này đã cho bạn điều gì đó phù hợp. Như bạn thấy từ tay cầm của tôi, tôi thích nói về thứ này. :-)

+0

rất thông tin ... Tôi sẽ thực hiện kỹ lưỡng. – Raulp

+0

@ Đa phương tiện Mike: Cảm ơn bài đăng này. – sam

+0

@ Đa phương tiện Mike Bạn có thể vui lòng trợ giúp với câu hỏi của tôi tại: [link] (http://stackoverflow.com/questions/21046088/video-encoding-decoding-ffmpeg-libav) Cảm ơn bạn trước! – learner

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