Chuyển đổi FLV sang MP4 bằng FFMPEG và giữ nguyên chất lượng


24

Tôi đang cố gắng sử dụng ffmpeg để chuyển đổi các tập tin flv của mình sang mp4 để phát chúng trên các thiết bị iOS nhưng video được chuyển đổi có chất lượng kém hơn nhiều so với bản gốc.

Đây là lệnh tôi sử dụng:

ffmpeg -i input.flv -ar 22050 output.mp4

Tôi thực sự đánh giá cao nếu ai đó có thể cung cấp cho tôi các cài đặt tốt nhất để chuyển đổi flv sang mp4.

ffmpeg  flv  mp4 

Câu trả lời:


40

Tùy thuộc vào các codec được sử dụng trong FLV của bạn, bạn có thể thoát khỏi chỉ bằng cách gói lại nó trong một thùng chứa mp4. Có thể bạn sẽ cần H.264 hoặc là MPEG4 simple profile video và AAC âm thanh. Bạn có thể tìm hiểu một số thông tin trên tệp nguồn của bạn với ffmpeg -i input.flv

Tôi không chắc liệu chỉ cần có H.264 / MPEG4 Simple + AAC là đủ tốt hay nếu có các tùy chọn cụ thể cho các codec được hỗ trợ. Nó đủ dễ để kiểm tra:

Hãy thử sử dụng

ffmpeg -i input.flv -c copy -copyts output.mp4

-copytscopy timestamps nó sẽ giúp đồng bộ hóa âm thanh.

Nếu điều đó không hiệu quả, hãy thử buộc codec âm thanh và video. Điều này sẽ mã hóa lại tập tin:

ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4

Để cải thiện chất lượng video, bạn có thể sử dụng giá trị CRF thấp hơn, ví dụ: mọi thứ xuống tới 18. Để có được một tệp nhỏ hơn, hãy sử dụng CRF cao hơn, nhưng lưu ý rằng điều này sẽ làm giảm chất lượng.

Để cải thiện chất lượng âm thanh, sử dụng giá trị chất lượng cao hơn. Đối với FAAC, 100 là mặc định.


Dưới đây là một vài suy nghĩ về lệnh ffmpeg được đề xuất trong câu hỏi.

-ar đề cập đến tốc độ mẫu âm thanh. Tôi khuyên bạn không nên lộn xộn với điều này cho đến khi bạn hiểu mọi thứ tốt hơn. Nếu bạn muốn chơi với mã hóa âm thanh, hãy điều chỉnh tốc độ bit (ví dụ: -b:a 128k ) và để bộ mã hóa chọn những gì cần làm dựa trên đó.

Nếu bạn cuối cùng đi xuống con đường này ...

Chất lượng CD là 44100Hz lấy mẫu; video thông thường sử dụng 48000Hz.

Bạn có thể lưu ý rằng 22050 trong ví dụ của câu hỏi ban đầu là 1/2 tốc độ mẫu chất lượng cd. nếu bạn đang chuyển đổi tài liệu CD thì đây là một lựa chọn tốt. Nếu bạn đang bắt đầu với nguồn 48KHz (có thể là bạn một lần nữa, thì điều này phổ biến hơn nhiều so với 44100 trong các tệp video) thay vào đó tôi sẽ sử dụng 24Khz. Nó có thể sẽ không quan trọng lắm, nhưng nó có vẻ tốt hơn một chút và sử dụng ít CPU hơn để thực hiện chuyển đổi.


đọc lại câu trả lời của tôi ... Ngoài dòng lệnh tôi đã đưa ra ở trên, bạn chỉ có thể sao chép video hoặc chỉ âm thanh và mã hóa lại cái khác. ví dụ ... "ffmpeg -i input.foo -vcodec copy -acodec libfaac -ab 128k -copyts output.mp4" điều này sẽ sao chép luồng video và mã hóa lại âm thanh vào AAC. libfaac không có chất lượng tuyệt vời nhưng nó hoạt động.
Dan Pritts
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.