Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Phần Mềm

Làm chủ VLC: Dùng Logging để chẩn đoán và sửa file không phát được

Có một câu nói phổ biến, gần như một tiên lý, nhưng chắc chắn có thể chứng minh trong giới hạn vũ trụ này, rằng nếu có file không phát được trong VLC, nó không được meant to be played. Audio hay video, VLC nuốt trọn tất cả, không quan tâm encoding gì, format gì, không quan tâm nếu là file preview tải từ eMule hay stream online.

Nhưng gì xảy ra khi VLC không phát file? Trong trường hợp đó, bạn sẽ tự hỏi gì đã sai, vì VLC chỉ hiển thị logo nón giao thông trên nền đen và từ chối phát. Đó là tất cả. Không tin nhắn phức tạp, không fanfare, và không manh mối Sherlock Holmes cho bạn. Hãy bóc tách một bí mật, được không? Hôm nay, bạn sẽ học cách làm cho kỹ năng phát file của bạn tốt hơn, trong VLC.

Logging level & debug console

Hầu hết mọi người không đào sâu vào giao diện VLC, nhưng vấn đề là, bạn sẽ tìm thấy nhiều thứ hữu ích đó. Trong số đó, nếu bạn vào menu Preferences và bật nút All (Advanced), tất cả tính năng sẽ được tiết lộ. Thứ ba từ trên xuống là Logging, nơi bạn có thể đặt tên file muốn ghi log message, cũng như chỉ định debug level.

Bạn có thể đẩy số lên cho chi tiết hơn, bao nhiêu tùy thích, lên đến 255, nhưng hầu hết mọi người sẽ struggle với quá nhiều thông tin, vì vậy tốt hơn bắt đầu đơn giản.

Cách đơn giản

Trong phiên bản 2.X của VLC, có cách đơn giản để làm việc. Under Tools > Messages, bạn có thể thay đổi verbosity level, cũng như chỉ đến file log liên quan. Các verbosity level là: 0 cho errors, 1 cho warnings, 2 cho debug. Điều này nên đủ cho hầu hết mọi người để bắt đầu.

Cảnh báo!

Đừng nhìn vào messages trừ khi bạn có vấn đề, vì đôi khi file phát được hoàn hảo sẽ có bad frame, rác, lỗi giải mã, và một đống bug nhỏ khác. Bạn có thể tràn bộ óc với thông tin vô dụng. Ví dụ, từ video Moron.avi của tôi:

Trông điên rồ. Bạn không muốn vậy.

Ví dụ thực tế

Được rồi, bây giờ, bạn có thể thử phát file un-playing của bạn, xem có gì. Sau khi bạn bấm nút Play vô ích, mở file log và kiểm tra nội dung. Bạn sẽ thấy một đống thứ, và hầu hết hoàn toàn vô hại.

Có cách đơn giản lọc rác không? Không, không thực sự. Không có phép màu, nhưng đôi khi, bạn có thể tìm thấy những mảnh thông tin có thể giúp tìm root cause. Ví dụ, tôi cố ý lấy file video bình thường và làm hỏng header bằng cách mở trong text editor và thay đổi một vài byte. Như mong đợi, file không còn phát, nhưng khi chạy trong VLC và kiểm tra messages, chúng ta thấy kết quả:

Bước tiếp theo sẽ là lấy các entry đáng ngờ, như cái cuối đó, đọc "no stream_filter module matching "any" could be loaded", và làm tìm kiếm Web online. Hầu hết thời gian, bạn sẽ bị bombarded bởi thông tin vô dụng, nhưng một số có thể giúp. Vẫn, đừng tuyệt vọng và chắc chắn làm việc chậm rãi qua đống data.

Nhưng còn nhiều hơn. Hãy xem还有 gì trong log:

ps warning: this does not look like an MPEG PS stream, continuing anyway
ps warning: garbage at input, trying to resync...
ps warning: found sync code
ps warning: garbage at input, trying to resync...

Có vẻ tự giải thích, phải không? Và còn cái này - tôi muốn bạn chú ý đến trường 'aaa' trong list dưới. Nó quan trọng, và chúng ta sẽ thấy nó ý nghĩa gì ngay vài phút nữa.

main debug: looking for demux module: 55 candidates
avi debug: <list 'AVI '>
avi debug: <list ' aaa'>
avi warning: unknown chunk (not loaded)
avi debug: </list ' aaa'>
avi warning: unknown chunk (not loaded)
avi debug: </list 'AVI '>
avi warning: unknown chunk (not loaded)
avi debug: * LIST-root size:3338746 pos:0
avi debug: + RIFF-AVI size:3338744 pos:0
avi debug: | + LIST- aaa size:326 pos:12
avi debug: | | + size:849936385 pos:24
avi debug: | + size:849936385 pos:24
avi debug: + size:849936385 pos:24
avi error: avi module discarded (invalid file)

Mặt sáng, không phải lỗi nào cũng cryptic như vậy. Đôi khi file thiếu audio stream hoặc có voice out-of-sync hoặc bad frame. Những discrepancy này rất có thể xuất hiện trong log dưới dạng warnings. Nhớ quy tắc trước - nếu nó chạy, để nó chạy!

Tuy nhiên, nếu bạn muốn explore vấn đề thay vì vứt file media, bạn sẽ bắt đầu research ở đây. Nó không đơn giản, nhưng tốt nhất bạn có thể làm là so sánh file tốt và file xấu, giống như chúng ta làm trong super debug tutorial, và tìm sự khác biệt.

Vì vậy, nếu so sánh file tốt và xấu, bạn sẽ thấy sự khác biệt trong header. File khỏe có hdrlavih8, file xấu có junk aaa viết đó. Nhớ ví dụ log trước. Đây nó! Tất nhiên, tôi biết thay đổi gì tôi làm và cách dễ dàng khắc phục, nhưng bạn có thể đối mặt bad index, bad timestamp, invalid codec, hoặc info khác có thể dễ dàng sửa. Hơi giống sửa file JPEG trong hướng dẫn data recovery Linux của tôi, nếu bạn thích hack. Vâng, nếu bạn có file nhạc và video quý giá, giá trị cảm xúc mà bạn không được mất, bạn có thể cố gắng sửa file thủ công.

Và một ít đọc về chủ đề này:

  • File AVI hỏng không có header hoặc index
  • Các bước sửa file thiếu header

Ví dụ khác

Bây giờ chúng ta đã qua fortissimo piano của bài này, hãy xem ví dụ khác. Ở đây chúng ta có file với định dạng không xác định. Nó đơn giản không phát, lý do là VLC không chọn được decoder đúng. Lại một lần, nhìn thấy không có gì xảy ra, nhưng log cho chúng ta biết những gì cần. Hầu hết trường hợp, bạn bỏ cuộc tại điểm này và nghỉ cà phê.

Lưu ý rằng chuỗi "garbage at input" xuất hiện ở cả hai trường hợp, vì vậy chúng ta bắt đầu nhận ra pattern hữu ích. Đây nên là con trỏ đầu tiên vào việc giải quyết bí ẩn phát lại. Nó cũng có nghĩa là bạn rất có thể không bao giờ thành công làm cho các file này phát mà không có hack byte-by-byte nghiêm túc. Không khuyến khích, nhưng bạn có thể có cuối tuần khô khan đầy torture thú vị. Not recommended.

Và cuối cùng, đôi khi, nó thực sự, thực sự đơn giản, vì VLC cũng có thể báo cho bạn rằng nó gặp vấn đề, không cần đào vào messages console hoặc bật debugging. Bạn sẽ thực sự biết gì đang xảy ra:


Kết luận

Tôi có cung cấp silver bullet cho media của bạn? Hoàn toàn không. Tôi có cung cấp thông tin hữu ích về cách tiếp cận vấn đề file media trong VLC? Hoàn toàn. Hướng dẫn ngắn này dạy bạn hai cách khác nhau cấu hình logging trong VLC, cả trên Windows và Linux. Nó giải thích nuance giữa errors, warnings và messages, chỉ cách phân biệt giữa vấn đề giả và thật, cách tìm giải pháp, cách so sánh file video tốt và xấu đến mức byte, và giải quyết một số vấn đề seemingly impossible với file không phát được.

Vâng, tôi hy vọng bạn thấy bài viết hữu ích. Hơn nữa, tôi hy vọng bạn hiểu sức mạnh và sự linh hoạt của VLC hơn một chút. Rất nhiều thứ ẩn dưới lớp da đơn giản, không bắt mắt, dễ quên khả năng tuyệt vời của chương trình. Đây, một bí mật VLC được bóc tách. Và cuối cùng, bottom line, không quan trọng khả năng debug phát lại media của bạn, hầu hết thời gian, nếu nó không phát, có lẽ nó chưa bao giờ meant to be.

Cheers.