2016-04-27 1 views
0

Während der Arbeit an einem Projekt habe ich einen toten Punkt erreicht.Probleme mit der Codierung von .265-Dateien. Python-Skript, um sie in NAL-Einheiten zu teilen ergibt UnicodeDecodeError

Jedes Mal, wenn ich versuche, den folgenden Python-Skript mit Argumenten auszuführen

-i Bitstreams/BasketballDrive.265 

https://gist.github.com/anonymous/5393d6ec4d2c7f8431e2a97fd750a76d

wo die Bitströme/BasketballDrive.265 ist eine codierte Videodatei, erhalte ich ein UnicodeDecodeError

Traceback (most recent call last): 
    File "C:/Users/Mathieu/Documents/Deel-4--Video-3/extractor.py", line 84, in <module> 
    main() 
    File "C:/Users/Mathieu/Documents/Deel-4--Video-3/extractor.py", line 79, in main 
    extractLayers(args['inputFile'], args['outputFile'], args['temporalLayer']) 
    File "C:/Users/Mathieu/Documents/Deel-4--Video-3/extractor.py", line 17, in extractLayers 
    gesplit = split_file(voorsplit, "0x00".encode("cp1252")) 
    File "C:/Users/Mathieu/Documents/Deel-4--Video-3/extractor.py", line 41, in split_file 
    for block in iter(lambda: fp.read(BLOCKSIZE), ''): 
    File "C:/Users/Mathieu/Documents/Deel-4--Video-3/extractor.py", line 41, in <lambda> 
    for block in iter(lambda: fp.read(BLOCKSIZE), ''): 
    File "C:\Users\Mathieu\AppData\Local\Programs\Python\Python35-32\lib\encodings\cp1252.py", line 23, in decode 
    return codecs.charmap_decode(input,self.errors,decoding_table)[0] 
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 192: character maps to <undefined> 

(Fehler wurde erzeugt, ohne die Codierung auf der open(INPUTFILENAME))

zu spezifizieren

Wenn ich

sys.getdefaultencoding() 

umfassen ich

>>> utf-8 

encoding="utf-8 Zusätzlich zu den open(INPUTFILENAME) auch nicht funktioniert.

Python-Version: 3.5

Windows-Version: W8.1

Antwort

1

Öffnen Sie die Dateien im Binär-Modus;

open(INPUTFILENAME, 'rb') 

Standardmäßig öffnet Python 3 Dateien im Textmodus. Dies impliziert, dass versucht wird, beim Lesen aus dem Inhalt einen str zu machen. Dies ist im Allgemeinen nicht das, was Sie mit einer Binärdatei machen wollen.

+0

Nun, das behebt das oben beschriebene Problem. Wird in 10 Minuten angenommen. – MrKickkiller