Auteur Topic: iconv op DS414  (gelezen 17852 keer)

Dit onderwerp bevat een als beste antwoord gemarkeerd bericht. Klik hier om er direct naartoe te gaan.

Offline mvveelen

  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 13
  • Berichten: 216
iconv op DS414
« Gepost op: 24 juli 2017, 13:03:06 »
Hi,

ik heb al mijn media met externe .srt bestanden op mijn NAS staan. Nu heb ik begrepen dat ik mbv iconv alle .srt bestanden kan omzetten naar UTF-8 (een must omdat ik nu bij elke aflevering dit handmatig moet instellen). Alleen kent m'n Syno het commando 'iconv' niet.  Hoe krijg ik dit geïnstalleerd (zonder bootstrap) zodat ik het toch kan gebruiken?

Of is er een andere mogelijkheid dat ik alle .srt bestanden kan zoeken, omzetten naar UTF-8 en dan ook nog eens in een cron ?
  • Mijn Synology: DS920+
  • HDD's: 2x3TB + 2x14TB SHR1
  • Extra's: 16GB RAM / DSM7.2.1

Ben(V)

  • Gast
Re: iconv op DS414
« Reactie #1 Gepost op: 24 juli 2017, 16:23:03 »
piconv staat wel op je Nas en kan hetzelfde.

Hier vind je de syntax:
http://para.se/perldoc/piconv.html

Overigens zijn alle ascii karakter gelijk in utf-8 en windows codepages.
Alleen de karakters met speciale tekens verschilen.

Als je autosub gebruikt om je subs te downloaden zit daar een setting in om het formaat van de .srt file op utf-8 te zetten.
Autosub converteert dan voor je als dat nodig is.

Offline mvveelen

  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 13
  • Berichten: 216
Re: iconv op DS414
« Reactie #2 Gepost op: 24 juli 2017, 18:17:05 »
Ik heb net ontdekt dat iconv wel degelijk op de Syno staat, je moet er alleen php voor zetten.....

Nu nog een script vinden dat precies doet wat ik wil: alle .srt bestanden opslaan als UTF-8

Ik gebruik wel Autosub, maar veelal haal ik QoQ afleveringen binnen en haal ik daar de .srt uit en converteer ik video en audio tot 1 .mkv bestand. Vraag me niet waarom, maar dat is ooit zo gestart en ik trek die lijn door. Ik wil nu alleen dus die .srt bestanden 'en masse' omzetten.
  • Mijn Synology: DS920+
  • HDD's: 2x3TB + 2x14TB SHR1
  • Extra's: 16GB RAM / DSM7.2.1

Ben(V)

  • Gast

Offline mvveelen

  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 13
  • Berichten: 216
Re: iconv op DS414
« Reactie #4 Gepost op: 24 juli 2017, 18:25:34 »
Hey,

die ga ik eens goed bekijken. Ik had al gestoeid met een ander script en dat resulteerde in alle seizoenen van 1 serie die nu .srt bestanden van 1Kb hebben  :'(  Ik ga dus eerst verder testen in een mapje waar het geen kwaad kan, en ondertussen op zoek naar die hele serie met bijbehorende .srt bestanden, hahahaha.

Thanks !
  • Mijn Synology: DS920+
  • HDD's: 2x3TB + 2x14TB SHR1
  • Extra's: 16GB RAM / DSM7.2.1

Ben(V)

  • Gast
Re: iconv op DS414
« Reactie #5 Gepost op: 24 juli 2017, 19:52:48 »
Als het niet lukt kan ik wel een python script voor je schrijven, maar dan zul je tot het weekend moeten wachten.

Offline mvveelen

  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 13
  • Berichten: 216
Re: iconv op DS414
« Reactie #6 Gepost op: 24 juli 2017, 19:55:28 »
Ik wil dan wel wachten eigenlijk. Ik ben nu de serie aan het binnenharken en heb liever iets dat goed werkt.

Hoe wil je het gaan aanpakken? De bestaande .srt renamen naar .bak en dan de UTF-8-srt opslaan als .srt met dezelfde naam als de oude/originele/bestaande .srt? Ach, ik merk het wel :)
  • Mijn Synology: DS920+
  • HDD's: 2x3TB + 2x14TB SHR1
  • Extra's: 16GB RAM / DSM7.2.1

Ben(V)

  • Gast
Re: iconv op DS414
« Reactie #7 Gepost op: 25 juli 2017, 06:15:16 »
Die sub uit de video halen doe je dat op een windows systeem?

Met andere woorden, weet je zeker dat al je sub's met een windows codepage zijn gemaakt?
Als je namelijk gaat omzetten naar utf-8 en de sub is al utf-8 dan gaat er van alles mis.

Bij converteren moet je weten in welk formaat de bron weggeschreven is.

Offline mvveelen

  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 13
  • Berichten: 216
Re: iconv op DS414
« Reactie #8 Gepost op: 25 juli 2017, 07:22:17 »
Het converteren doe ik dmv MKVtools op een MacBook Pro. Wat voor codering het (over het algemeen) is durf ik niet te zeggen. Het zal ook vast niet 100% hetzelfde zijn. Is er geen check in te bouwen die bepaalt wat de codering het is en als het al UTF-8 is om het dan met rust te laten en als het een andere codering is om het dan naar UTF-8 om te zetten?

Hoe kan ik dmv wat steekproeven bekijken wat de coderingen nu zijn?
  • Mijn Synology: DS920+
  • HDD's: 2x3TB + 2x14TB SHR1
  • Extra's: 16GB RAM / DSM7.2.1

Ben(V)

  • Gast
Re: iconv op DS414
« Reactie #9 Gepost op: 25 juli 2017, 12:04:50 »
Dan zit daar vermoedelijk je probleem.

De standaard encoding van een MAC is UTF-8, dus als er bij het maken van de .mkv niet is aangegeven welke codering gebruikt wordt dan zal mkvtoolnix de standaard codering van de MAC gebruiken.
Als er in de .mkv het wel netjes is aangegeven zal mkvtoolnix de sub converteren naar UTF-8 ( of zo laten als hij al utf-8 was).

De meeste .mkv's waar al een sub in zit zijn gemaakt op windows systemen en daar gaat het dus fout bij elk speciaal karakter, want als het 8ste bit op een staat dan wordt het karakter opgezocht in de actuele codepage.
Bij utf-8 geeft het 8ste bit aan dat het een adres (van 2, 3 of 4 byte) is in de utf-8 code tabel.

Met behulp van mkvinfo kun je kijken of er een codec opgegeven is en zo ja welke codering gebruikt is.

Ik weet niet hoe het met mkvtoolnix zit, maar zelf gebruik ik ffmpeg om subs uit een mkv te halen en daarmee kun je opgeven welke codec gebruikt moet worden.
Als ik dan windows-1252 gebruikt gaat het altijd goed.

EDIT:
Ik kan wel een python progje voor je schrijven die met behulp van ffmpeg de video,audio en nederlandse sub uit je .mkv haalt en daar weer een nieuwe .mkv van maakt.
Kan allemaal op je NAS draaien en via de taakplanner regelmatig laten draaien.

Offline mvveelen

  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 13
  • Berichten: 216
Re: iconv op DS414
« Reactie #10 Gepost op: 25 juli 2017, 12:44:27 »
Het is MKVtools, niet MKVtoolnix wat ik gebruik. Ik heb die een tijd geleden aangeschaft hiervoor.

Er is dus geen mogelijkheid om dmv een script eerst uit te lezen wat de codering is en het dan om te laten zetten als het geen UTF-8 is?

Als ik handmatig de .srt bestanden in Windows (Parallels op de MacBook) via een Dos boxje omzet mbv Subtitleedit, dan pakt deze alle .srt bestanden en zet ze om, klaar. Of het nu al UTF-8 bestanden zijn of niet. Alleen is dat dan wel een flinke klus. Of ik moet het in Dos gaan scripten dat hij alle directories van de NAS afstruint en de .srt bestanden dan omzet. Ook niet erg, maar liever dmv een cron op de NAS natuurlijk :)
  • Mijn Synology: DS920+
  • HDD's: 2x3TB + 2x14TB SHR1
  • Extra's: 16GB RAM / DSM7.2.1

Offline mvveelen

  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 13
  • Berichten: 216
Re: iconv op DS414
« Reactie #11 Gepost op: 25 juli 2017, 12:46:33 »


EDIT:
Ik kan wel een python progje voor je schrijven die met behulp van ffmpeg de video,audio en nederlandse sub uit je .mkv haalt en daar weer een nieuwe .mkv van maakt.
Kan allemaal op je NAS draaien en via de taakplanner regelmatig laten draaien.

Lees dit nu pas :)

Daar kan ik in ieder geval eens mee gaan testen om te zien of dat het euvel verhelpt.
  • Mijn Synology: DS920+
  • HDD's: 2x3TB + 2x14TB SHR1
  • Extra's: 16GB RAM / DSM7.2.1

Ben(V)

  • Gast
Re: iconv op DS414
« Reactie #12 Gepost op: 25 juli 2017, 12:49:36 »
Zal van het weekend wel wat in elkaar prutsen.
Hou deze post in de gaten voor het resultaat.

Offline mvveelen

  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 13
  • Berichten: 216
Re: iconv op DS414
« Reactie #13 Gepost op: 25 juli 2017, 20:28:56 »
Will do.

Maar het hoeft niet zo te zijn dat het de video/audio convert naar .mkv en dan de .srt eruit filtert hoor? Want wat ik heb staan is 99,9% .mkv met alleen maar video+audio en dan los erbij de .srt files.

Edit:

Al browsend kwam ik het commando "chardetect" tegen. Ik heb wat .srt files in een testmapje gezet en dit komt eruit:

root@DiskStation:/volume1/web/test# /usr/bin/chardetect *.srt
Colony S01E01 Pilot.srt: utf-8 with confidence 0.99
Colony S01E02 A Brave New World.srt: utf-8 with confidence 0.99
Colony S01E03 98 Seconds.srt: utf-8 with confidence 0.99
Colony S01E04 Blind Spot.srt: utf-8 with confidence 0.99
Colony S01E05 Geronimo.srt: utf-8 with confidence 0.99
Colony S01E06 Yoknapatawpha.srt: utf-8 with confidence 0.99
Dexter S01E01 Dexter.srt: UTF-8-SIG with confidence 1.0
Dexter S01E02 Crocodile.srt: UTF-8-SIG with confidence 1.0
Dexter S01E03 Popping Cherry.srt: UTF-8-SIG with confidence 1.0
Dexter S01E04 Let's Give the Boy a Hand.srt: UTF-8-SIG with confidence 1.0
Designated Survivor S01E17 The Ninth Seat.srt: UTF-8-SIG with confidence 1.0
Designated Survivor S01E18 Lazarus.srt: UTF-8-SIG with confidence 1.0
Designated Survivor S01E19 Misalliance.srt: UTF-8-SIG with confidence 1.0
Designated Survivor S01E20 Bombshell.srt: UTF-8-SIG with confidence 1.0

Hieruit zou je kunnen concluderen dat alleen de laatste 8 "echte" UTF-8 coderingen hebben. De laatste 4 heb ik gecontroleerd tijdens het kijken van die afleveringen en daar ging inderdaad alles goed met speciale leestekens zoals àáèéë, enz.

Misschien kan dit nuttig zijn bij het maken van een script ?
  • Mijn Synology: DS920+
  • HDD's: 2x3TB + 2x14TB SHR1
  • Extra's: 16GB RAM / DSM7.2.1

Ben(V)

  • Gast
Re: iconv op DS414
« Reactie #14 Gepost op: 26 juli 2017, 06:27:34 »
Volgens mij zegt chardetect dat ze allemaal utf-8 zijn.
Een zekerheid van 0.99 is tamelijk hoog.

Er zijn utf-8 met BOM bestanden die aan het begin van het bestand een signature hebben waaraan je kunt zien dat het een utf-8 bestand is.
Als chardetect zo'n bestand tegenkomt concludeert hij met 100% zekerheid dat het een utf-8 bestand is, in andere gevallen gaat hij door het bestand heen en probeert te raden welk soort bestand dat is en dan krijg je nooit een score van 1.0 maar altijd lager.
Die bestanden met een BOM erin zijn die met een "utf-8-sig" codec.

Zijn dit sub's die je uit een .mkv gehaalt hebt of komen ze elders vandaan?
Haal eens een sub door chardetect waarvan je weet dat de speciale karakters verkeerd worden weergegeven.

Waar speel je de video's mee af trouwens, want de meeste players kunnen met meerdere codecs werken.
Op mijn mediaplayer kun je kiezen tussen utf-8 en windows-latin.