Làm cách nào để chuyển đổi nhanh mp4 sang webm bằng ffmpeg?


20

Tôi phải chuyển đổi 76 tệp mp4 thành webm cho mục đích của một trang web sử dụng video HTML5. Tôi đang nói về 10 Gb tệp mp4 ... Tôi biết đơn giản là tôi có thể yêu cầu ffmpeg thực hiện điều đó bằng cách sử dụng:

ffmpeg -i input_file.mp4 output_file.webm

Tất nhiên tôi sẽ làm điều đó một cách đệ quy bằng cách:

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;

Tôi thậm chí đã thử một cái gì đó tôi tìm thấy ở đâu đó trên internet:

ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm

Nhưng vấn đề là tôi sẽ không mất ít hơn một tuần !!! Tôi đang làm gì sai? Có cách nào có thể để tăng tốc đó không? Nếu tôi chuyển đổi sang ogg tôi sẽ đạt được tốc độ? Hãy giúp tôi!!!



@LordNeckbeard bạn nên viết câu trả lời dựa trên hướng dẫn đó. Ngoài ra, cần lưu ý rằng bộ mã hóa vpx chậm như mật đường, ngay cả với cài đặt lành mạnh, v.v., so với x264 ... trừ khi bạn sẵn sàng hy sinh nhiều chất lượng, lit không thể có được mã hóa thực sự nhanh với nó.
evilsoup

Vấn đề là về khả năng tương thích .. Đây là một bảng tương thích nhỏ: {x264: IE (+) Safari (+) Chrome (+) Firefox (-) Opera (-)} {webm: IE (-) Safari (-) Chrome (+) Firefox (+) Opera (+)} Tôi biết họ nói Safari và IE chiếm phần lớn nhất của thị trường nhưng tôi thực sự nghi ngờ về điều đó và sẽ đặt cược vào Firefox và Opera! ;)
pr.nizar

@ pr.nizar Nhờ Cisco phát hành OpenH264 trong BSD, firefox hiện hỗ trợ h.264.
Wyatt8740

Câu trả lời:


11

Chuyển mã video mất thời gian. Nó cũng cần nhiều kiến ​​thức hơn về các tham số mã hóa; Mặc định của ffmpeg dường như không phù hợp với bạn và thậm chí có thể không tạo tệp đầu ra có thể sử dụng được.

Đây là một khởi đầu:

http://blog.pcode.nl/2010/10/17/encoding-webm-USE-ffmpeg/

Các cài đặt đó sẽ mã hóa thành bitrate trung bình cụ thể (bitrate video 3900kbit), do đó sẽ có các đột biến trong bitrate.

MP4 và WebM sử dụng các codec video khác nhau, do đó không bị cắt ngắn; video phải được chuyển mã.

Tất nhiên, tốc độ mã hóa sẽ thay đổi rất nhiều tùy thuộc vào kích thước khung hình, tốc độ khung hình và cài đặt chất lượng. Đối với mã hóa 720p, bạn có thể mong đợi có thể mã hóa khoảng 1: 1 (tức là 10 giờ video trong 10 giờ) trên CPU từ vài năm trước. Nếu bạn thực hiện mã hóa ABR hai lần như trong ví dụ được đưa ra trong liên kết, gần như gấp đôi số đó.


8

Cắt đôi hay cắt một nửa? Vì vậy, đó là một ngõ cụt .. Tôi sẽ không chơi với bitrate, tôi không bao giờ biết những gì mong đợi từ chất lượng hoặc kích thước .. Tôi nghĩ rằng tôi sẽ gắn bó với điều này và làm cho khách hàng giữ cho đến khi quá trình chuyển đổi kết thúc ..

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;

Tôi đang đăng nó cho người dùng trong tương lai, thực sự tôi đã đạt được tốc độ nhưng CPU của tôi đang hoạt động như địa ngục: 60 đến 80% cho mỗi lõi! Bây giờ tôi nghĩ rằng sẽ mất ít thời gian hơn: 3 ngày thay vì 6 hoặc 7 .. Tôi hy vọng nó sẽ không phá vỡ nó .. ^ _ ^

Dù sao cũng cảm ơn người đàn ông!

Chỉnh sửa: Đã xóa khóa -sameq sau khi nhận xét từ LordNeckbeard và neon_overload -sameq không có nghĩa là "chất lượng" giống nhau


3
-sameqkhông có nghĩa là "cùng chất lượng" và đã bị loại bỏ ngược dòng. Đừng sử dụng nó. Tham khảo liên kết trong nhận xét của tôi cho câu hỏi của bạn để biết hướng dẫn mã hóa libvpx chi tiết.
llogan

2
-sameq có nghĩa là cùng một bộ lượng tử hóa, tuy nhiên không thể so sánh các bộ lượng tử giữa h.264 và VP8, vì vậy ngay cả khi điều này có hiệu quả, bạn gần như chắc chắn sẽ nhận được kết quả bị hỏng nếu bạn sử dụng nó - vì vậy đừng.
thomasrutter

2
Cảm ơn người đàn ông đã mang sự chú ý của tôi đến đó! Tôi đã chỉnh sửa phản hồi của mình ..;) Thật ra tôi đã không sử dụng công tắc đó vì tôi thấy nó thậm chí còn chậm hơn .. Tôi thậm chí đã bỏ ffmpeg và sử dụng avconv: IT'S WAY FASTER! Công việc đã được thực hiện trong một ngày rưỡi với điều này: find ./ -name '* .mp4' -exec bash -c 'avconv -i "$ 0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 " $ {0 %%. Mp4} .webm "'{} \; Tôi biết tôi đang chuyển hướng chủ đề với nhận xét này nhưng tôi nghĩ rằng nó đáng để nói điều đó .. ^ _ ^ Hy vọng nó sẽ giúp được ai đó! ;)
pr.nizar 24/03/13

Đối với chất lượng thực sự tôi không thể nói sự khác biệt giữa các tệp gốc và các webm đó được mã hóa: đó là chất lượng âm thanh và video gần như giống nhau!
pr.nizar 24/03/13

1
Chúng tôi vẫn khuyên bạn nên đặt giá trị crf hoặc bitrate thay vì sử dụng mặc định của ffmpeg / avconv, bất cứ điều gì có thể.
thomasrutter
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.