2008-09-18 29 views
11

Một phần của sản phẩm mới mà tôi đã được giao để làm việc liên quan đến việc chuyển đổi phía máy chủ của các định dạng video 'phổ biến' thành một thứ mà Flash có thể phát.Công cụ tốt nhất để chuyển đổi định dạng video phổ biến thành FLV trên Linux CLI

Theo như tôi biết, tùy chọn duy nhất của tôi là chuyển đổi sang FLV. Tôi đã cho ffmpeg một đi xung quanh, nhưng tôi đang tìm một vài tập tin WMV mà đi ra với âm thanh bị cắt xén (Tôi đã cố gắng chơi với các tỷ lệ âm thanh).

Có bộ chuyển đổi CLI 'tốt' khác cho Linux không? Hoặc có các định dạng video khác mà Flash có thể phát không?

Trả lời

15

Flash có thể chơi các định dạng sau:

FLV with AAC or MP3 audio, and FLV1 (Sorenson Spark H.263), VP6, or H.264 video. 
MP4 with AAC or MP3 audio, and H.264 video (mp4s must be hinted with qt-faststart or mp4box). 

ffmpeg là một tiện ích chuyển đổi tốt tổng thể; mencoder hoạt động tốt hơn với các định dạng tối nghĩa và độc quyền (do gói bộ giải mã nhị phân w32codecs) nhưng muxing của nó khá kém chất lượng (đọc: thường hoàn toàn bị hỏng). Một giải pháp có thể là mã hóa H.264 với x264 thông qua mencoder, và sau đó mux riêng biệt với mp4box.

Là nhà phát triển của x264 (và người dùng flash để phát lại video trực tuyến), tôi đã có khá nhiều kinh nghiệm về loại nội dung này, vì vậy nếu bạn muốn được hỗ trợ thêm, tôi cũng có sẵn trên Freenode IRC trên # x264, #ffmpeg và #mplayer.

2

Hầu hết bộ mã hóa, theo mặc định (ffmpeg include) đặt nguyên tử đầu của mp4 ("moov atom") ở cuối video, vì chúng không thể đặt tiêu đề cho đến khi chúng được mã hóa xong. Tuy nhiên, để tệp bắt đầu phát lại trước khi tải xuống xong, nguyên tử moov phải được di chuyển về phía trước.

Để làm điều này, bạn phải (lại) mux sử dụng mp4box (theo mặc định) hoặc sử dụng qt-faststart, một tập lệnh cho ffmpeg chỉ đơn giản là chuyển nguyên tử sang mặt trước. Nó khá đơn giản.

Lưu ý rằng đối với FLV, theo mặc định, ffmpeg sẽ sử dụng định dạng video FLV1, điều này khá khủng khiếp; của nó hơn một thập kỷ cũ bởi thời điểm này và hiệu quả của nó là khá khủng khiếp cho các tiêu chuẩn hiện đại. Bạn nên sử dụng một định dạng hiện đại hơn như H.264.

+0

Lợi ích khi đặt nguyên tử ở cuối là gì? –

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