Tôi chuyển đổi video bằng FFMPEG. Mục tiêu của tôi là chuyển đổi chúng sang định dạng chứa MP4 ( MPEG-4 Phần 14 ) với luồng âm thanh được mã hóa AAC và luồng video 10-phần MPEG-4 .
Tôi sử dụng dòng sau để chuyển đổi video:
ffmpeg -y -i "{inputFile}" "{outputFile}"
Video được chuyển đổi trông ổn, tuy nhiên thời lượng của luồng trong tệp được chuyển đổi và tệp đầu vào không phải lúc nào cũng khớp.
Tôi đã thực hiện một số thử nghiệm và sự khác biệt về thời lượng chắc chắn là có, tuy nhiên, nó không nhiều - dù sao tôi cũng đang thử nghiệm với các video nhỏ. Đây là kết quả của tôi:
| InputFile | InputAudio | InputVideo | OutputAudio | OutputVideo |
|------------|------------|------------|-------------|--------------|
| h.avi | 3s 631ms | 3s 567ms | 3s 668ms | 3s 567ms |
| h.flv | 3s 631ms | 3s 558ms | 3s 668ms | 3s 567ms |
| h.mov | 3s 532ms | 3s 533ms | 3s 682ms | 3s 534ms |
| h.mp4 | 3s 605ms | 3s 534ms | 3s 682ms | 3s 567ms |
| h.mpg | 3s 605ms | 3s 533ms | 3s 563ms | 3s 534ms |
| h.wmv | 3s 620ms | 3s 633ms | 3s 659ms | 3s 567ms |
Vì tôi sẽ xây dựng một phần mềm trên đỉnh FFMPEG, tôi sẽ hạnh phúc hơn nếu ít nhất tôi có thể hiểu lý do của sự khác biệt này. Có phải vì một số chuyển mã không cần thiết?
Trong trường hợp này, tôi có thể tắt chuyển mã này để ngăn FFMPEG lấy mẫu lại tệp video đầu vào của mình không?
Nếu tôi không thể tắt nó đi, làm sao tôi có thể chắc chắn (ngoài việc kiểm tra) rằng sự khác biệt này không tỷ lệ thuận với kích thước của video?
Nếu tôi chuyển đổi ví dụ video 10 giờ, sự khác biệt nhiều giây hoặc thậm chí vài phút là không phù hợp với tôi.