it-swarm-vi.com

Làm thế nào tôi có thể sửa chữa một tập tin AVI bị hỏng?

Tôi có một tập tin .avi khoảng 110mb. Khi tôi thử chơi nó với VLC Media Player, nó có thông báo như "Tập tin này bị hỏng. Cố gắng sửa chữa?" và sau khi nó làm điều đó nó vẫn không thể chơi nó.

Có phần mềm nào khác ngoài đó có thể lấy bất kỳ video nào mà nó có thể ra khỏi nó không? Có lẽ một trong đó chuyên về loại điều đó? Tôi không hy vọng lắm vì tôi đoán rằng nếu có bất cứ điều gì có thể được phát ra từ nó thì VLC sẽ xoay sở để làm điều đó, nhưng tôi đoán rằng tôi sẽ cho nó một phát bắn ...

22
Paolo Bergantino

Tôi đã có một số may mắn trong quá khứ với rất nhiều AVI bị hỏng/không hoàn chỉnh khi sử dụng DivFix , nhưng không chắc nó có hoạt động tốt trên mọi thứ muộn hơn Windows XP không.

Phiên bản mới hơn là DivFix ++ :

DivXFix ++ được thiết kế để sửa chữa các luồng tệp AVI bị hỏng bằng cách xây dựng lại một phần chỉ mục của tệp. Điều này rất hữu ích khi cố gắng xem trước các bộ phim không có phần chỉ mục, như một số tệp hiện đang tải xuống từ các mạng ed2k hoặc bittorent. DivFix ++ hoàn toàn viết lại chương trình "DivFix" do lỗi và hiệu năng thấp.

11
Nick Josevski

Đây là một số chương trình có thể giúp:

  • VLC sẽ đề nghị bạn sửa chỉ mục của tệp AVI bị hỏng khi bạn mở tệp.
  • DivFix ++
  • AviFiXP (chỉ chạy trên Windows)

Có một hướng dẫn mở rộng về sửa chữa các tệp AVI bị hỏng ở đây: Sửa các tệp AVI bị hỏng hoặc bị hỏng - AfterDawn: Guide

Bạn cũng có thể thử xây dựng lại container bằng cách thực hiện một bản sao dòng bit với FFmpeg :

ffmpeg -i input.avi -c copy output.avi
12
slhck

VirtualDub có thể làm những điều khá tuyệt vời với các tệp AVI bị hỏng. Chỉ cần mở tệp trong VirtualDub, để nó nấu và sau đó nếu nó mở thành công, hãy lưu lại dưới dạng tệp AVI mới. Thông thường, bạn thậm chí không cần thay đổi cài đặt nén.

3
Electrons_Ahoy

Tôi đã có một số AVI mà VLC thậm chí không cố sửa chữa và DivFix ++ đã cho tôi tìm lỗi. Chuyển chúng qua ffmpeg không hoạt động, nhưng mencoder đã làm (rất nhanh):

mencoder -idx input.avi -ovc copy -oac copy -o output.avi

(mencoder là một phần của gói mplayer trên hầu hết các hệ thống, ví dụ: brew install mplayer trên Homebrew.)

Xem thêm: Làm cách nào tôi có thể kiểm tra tính toàn vẹn của tệp avi và tự động sửa nó trong Linux?

2
William Turrell

Có một trò chơi được gọi là SuperDecoder.

đã có thể phát các tập tin và CD/DVD thực sự gây rối với nó. Bạn có thể cho nó một shot.

2
M.N

Tất cả các ý tưởng hay về cách sửa chữa chỉ mục AVI bị hỏng (sở thích của tôi là ffmpeg), nhưng đóng góp ở đây một cách để tìm các tệp avi có chỉ mục bị hỏng để kiểm tra chúng và chủ động sửa chữa chúng. Sau khi không thành công khi cố gắng sử dụng mediainfoffprobe và những người khác để phát hiện các tệp mà vlc sẽ phàn nàn, cuối cùng tôi đã quyết định sử dụng vlc vì đó là một trong những khiếu nại. Đây là một đoạn có thể hữu ích như là một phần của tập lệnh sửa chữa quét và tự động.

if grep -q "avi demux error" \
    <(cvlc --vout null --aout null --stop-time 2 "${VIDFILE}" vlc://quit 2>&1 )
    # alternate ways to stop after two seconds
    #<(timeout 2 cvlc --vout null --aout null "${VIDFILE}" 2>&1)
    #<(cvlc --vout null --aout null "${VIDFILE}"  2>&1 & sleep 2; kill $!)
then
    echo "avi demux error: ${VIDFILE}"
    exit 1
fi

Lưu ý: các phương pháp dừng thay thế (vì vậy nó không phát toàn bộ video trước khi thoát) được bao gồm vì một số phiên bản của VLC có lỗi trong --stop-time và các hệ thống khác có thể không có timeout.

0
user2070305