Я давно скачал несколько видео из Интернета, но с тех пор они были повреждены. При проверке с помощью шестнадцатеричного редактора я заметил, что в случайных местах файлов были добавлены нулевые байты (0x00). Я попытался извлечь содержимое WebM с помощью магических байтов, и хотя метод оказался частично успешным, аудио и видео по-прежнему глючат. Я не понимаю, как файлы были повреждены, и был бы признателен, если бы криминалист YODA благословил меня своим временем.
Я пробовал vlc, sm player и некоторые другие, но ни один из них не помог. Это код, который я использовал для извлечения файла WebM из этого поврежденного файла:
Код: Выделить всё
import sys
def extract_webm(input_path):
try:
with open(input_path, 'rb') as file:
data = file.read()
# WebM magic bytes
magic_bytes = b'\x1A\x45\xDF\xA3'
start_index = data.find(magic_bytes)
if start_index == -1:
print(f"No WebM file found in {input_path}")
return
# Extract the WebM file from the start index to the end of the data
webm_data = data[start_index:]
output_path = f"extracted_{input_path}"
with open(output_path, 'wb') as output_file:
output_file.write(webm_data)
print(f"WebM file extracted and saved as: {output_path}")
except Exception as e:
print(f"Failed to extract WebM file from {input_path}: {e}")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python extract_webm.py ")
sys.exit(1)
input_file = sys.argv[1]
extract_webm(input_file)
Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-python