#!/bin/bash
cd ~/Music
if [[ -f flac-errors.txt ]]; then
rm flac-errors.txt;
fi
touch flac-errors.txt
shopt -s globstar
for file in ./**/*.flac; do
flac -wst "$file" 2>/dev/null || printf '%3d %s\n' "$?" "$file" >> flac-errors.txt;
done
如何檢測 FLAC 文件是否損壞
Flac文件是一種無損音頻壓縮格式,是Free Lossless Audio Codec的縮寫,其特點是無損壓縮。不同于其他有損壓縮編碼如MP3及AAC,它不會破壞任何原有的音頻資訊,所以可以還原音樂光盤音質。那怎么知道 FLAC 文件是否有損壞,以及如何修復?
第 1 部分: FLAC 文件損壞的原因
FLAC中文可解釋為無損音頻壓縮編碼。FLAC是一套著名的自由音頻壓縮編碼,其特點是無損壓縮。不同于其他有損壓縮編碼如MP3及AAC,它不會破壞任何原有的音頻信息,所以可以還原音樂光盤音質。2012年以來它已被很多軟件及硬件音頻產品(如CD等)所支持。有多種原因會導致FLAC 文件的損壞:
文件完全損壞
病毒攻擊和惡意軟件可能是FLAC 文件中出現此類問題的原因。除此之外,如果文件進行意外轉換或壓縮,它也可能被損壞。
整個文件結構的損壞
如果在不同平臺打開 FLAC 文件時遇到問題,則文件的內部組件很可能已嚴重損壞。可能還會在計算機上收到錯誤消息“FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH”,它包含了很多有關 FLAC 音頻文件結構損壞的信息。
缺少音頻編解碼器
如果計算機上的音頻編解碼器存在一些問題,則 FLAC 音頻文件將無法運行。如果收到錯誤消息“FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC”,這表明該軟件由于某種原因無法運行 FLAC 文件,例如缺少音頻代碼。
標題問題
另一個損壞的 FLAC 文件的原因是其錯誤的標題。如果FLAC 文件無法正常運行,可能是其標題被強制更改或損壞,會在計算機上收到到此錯誤消息“FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER”。
第 2 部分:在 Windows 上檢查 FLAC 文件
在運行 FLAC 文件時,可能會遇到一些錯誤和問題。在這一部分中,我們將介紹兩種有效且獨特的方法,它們可以清晰的檢查 FLAC 文件的狀態。
1.使用“FLAC前端”軟件
第一種可用于在 Windows 上檢查 FLAC 文件狀態的方法是通過專用工具“ FLAC Frontend ”。它可以通過 WAVE、W64 和 RAW 文件進行編碼,提供 FLAC 或 OGG-FLAC 文件作為輸出。通過該程序可以實現多種功能,包括解碼 FLAC 文件、在整個程序中對其進行測試、對它們進行指紋識別以及輕松地對其重新編碼。
第 1 步:從官方 FLAC 下載程序。
成功安裝軟件后啟動應用程序。

第 2 步:打開應用程序時,單擊“添加文件”按鈕添加需要檢查損壞的 FLAC 文件。
添加文件時,單擊“測試錯誤”按鈕以啟動該過程。

第 3 步:將打開一個命令行界面并顯示完整的信息列表。
文件會在它們旁邊顯示“OK”消息,錯誤和相關數據將在界面中詳細顯示損壞的 FLAC 文件。

2.使用命令行程序
如果對管理命令行程序有深入的了解,可以使用這種方法來檢查 FLAC 文件。盡管該技術執行起來非常具有挑戰性,但它確實可以完美檢查 FLAC 文件中可能存在的問題。
此命令行文件編碼器當前支持 RIFF WAVE、Wave64、RF64、AIFF、FLAC 或 OGG-FLAC 格式作為輸入,并在整個解碼器中輸出 RIFF WAVE、Wave64、RF64、AIFF 或 RAW 交錯樣本。
考慮到命令行程序正在訪問的功能,可以通過四種方式調用 flac,如下所述:
- 編碼:flac [] [] [] [輸入文件 [...]]
- 解碼:flac -d [] [] [] [FLAC 文件 [...]]
- 測試:flac -t [] [FLAC 文件 [...]]
- 分析:flac -a [] [] [FLAC 文件 [...]]
如果 flac 在測試模式下運行,可以找到在解碼模式下運行的 flac,但是不會與輸出文件一起返回。跨flac的解碼和測試模式用于檢測跨流的錯誤,當解碼音頻的 MD5 簽名與存儲簽名不匹配時,即使比特流沒有問題,它們也會檢測到錯誤。
還可以使用 flac 重新編碼 FLAC 文件。當在編碼器中指定 FLAC 文件或 OGG-FLAC 文件作為輸入時,如果沒有被其他選項覆蓋,它會保存所有元數據。該程序已經過調整,可以為所提供的輸入提供更好的速度。
通過命令行程序檢查 FLAC 文件
我們現在將幫助用戶如何通過命令行程序檢查 FLAC 文件是否損壞:
對于單個文件:
使用以下命令行測試單個 FLAC 文件:
flac -wst flac_filename.flac
要理解命令行:
- -w 表示將所有警告視為錯誤的 warnings-as-error 命令。
- -s 被稱為靜默,在命令行中不顯示編碼和解碼統計信息。
- -t 為測試,這里認為退出代碼與命令行的解碼模式相同。
此過程僅適用于單個 FLAC 文件,要同時檢查多個 FLAC 文件的可用性,可以使用下一組命令腳本。
對于 FLAC 文件的集合:
在命令行中使用了此腳本,它將按以下時間順序運行。
- 這些命令用于將腳本重定向到 Music 文件夾,其中創建了一個名為“flac-errors.txt”的文件。當程序在循環中運行時,該文件將連續刪除并重新創建自己。
- “shopt -s globstar”命令指向在測試期間執行遞歸操作的 Bash 腳本。它確保文件系統當前位置內的所有文件和目錄都經過測試和處理,進程中不留下任何文件。
- 命令行中的“for”循環遍歷完整的 Music 文件夾和子文件夾,用于檢查其中的 FLAC 文件。如果文件正常,則通過刪除輸出的 /dev/null 發送輸出命令。但如果 FLAC 文件有問題,則會在 flac-errors.txt 文件中顯示錯誤。
- 當文件通過命令在每個新條目中重新創建時,最好打開 flac-errors.txt 文件以通過另一個控制臺讀取它。這可以幫助了解文件夾中所有 FLAC 文件的狀態。
tail -f /home/User_Name/Folder_Name/flac-errors.txt
這就是如何在 flac 命令行程序中測試多個 FLAC 文件的方法。
第 3 部分:如何修復 Windows/Mac 上的 FLAC 文件?
既然已經了解如何檢查 FLAC 文件是否損壞的方法,現在是時候詳細了解如何修復文件了。萬興易修是修復損壞的音頻文件的最佳工具。不僅支持多種文件格式的修復,而且具有很高的成功率,能夠在所有可能導致文件損壞的典型場景中恢復音頻質量。以下是萬興易修的主要功能:
-
支持修復各種級別的損壞音頻,例如剪輯音頻、嗡嗡聲、隆隆聲、嘶嘶聲、不同步音頻等。
-
支持修復多種格式的音頻,包括AAC、MP3、M4A、FLAC、WAV等。
-
修復來自多個設備的損壞或損壞的音頻:便攜式錄音機、錄音軟件、拍攝設備、SD卡、手機、USB閃存驅動器等。
-
兼容Windows PC、Mac OS,支持PC到手機傳輸/分享。
使用萬興易修修復 FLAC 文件的步驟:
第 1 步:啟動軟件并選擇音頻修復。
在桌面上啟動萬興易修并繼續到“音頻修復”選項卡,接下來單擊“+添加”按鈕以導入損壞的 FLAC 文件或文件。

第 2 步:開始修復損壞的文件。
添加損壞的文件時,單擊“修復”以打開一個新的彈出窗口。接下來,需要提供一個支持參考文件,以幫助 自動修復損壞的 FLAC 文件。添加參考音頻后,單擊“開始高級修復”以啟動修復。

第 3 步:預覽以檢查并保存。
在下一個窗口中找到修復的音頻。單擊“預覽”以檢查文件是否已修復。如果對結果滿意,請單擊“保存”以導出修復后的 FLAC 文件。

這篇文章主要幫助用戶了解如何檢查 FLAC 文件是否有損壞,使用以上的提供的方法可以輕松檢查所有 FLAC 文件并確定它們是否已損壞。如果文件已損壞,則可以下載萬興易修以輕松修復所有損壞的 FLAC 文件。