Education·7 min

Από Shamir

Τι είναι ένα αρχείο .TS και γιατί οι ροές σας αποτελούνται από τέτοια αρχεία

Αν έχετε κοιτάξει ποτέ μέσα σε ένα manifest ροής, θα έχετε δει μια λίστα αρχείων που τελειώνουν σε .ts. Αν έχετε πάρει ποτέ βίντεο από συσκευή εγγραφής ή κάρτα capture, μπορεί να καταλήξατε με ένα τέτοιο αρχείο. Και αν έχετε προσπαθήσει ποτέ να το ανοίξετε κάνοντας διπλό κλικ, υπάρχει μεγάλη πιθανότητα να μην έγινε απολύτως τίποτα.

Το .ts σημαίνει MPEG Transport Stream και είναι ένα από τα πιο αθόρυβα σημαντικά φορμά βίντεο. Σχεδιάστηκε για δορυφορικές και επίγειες εκπομπές τη δεκαετία του 1990 και, τρεις δεκαετίες αργότερα, κατέληξε να μεταφέρει τεράστιο μέρος του streaming στο διαδίκτυο — για έναν λόγο που, μόλις τον κατανοήσετε, είναι πραγματικά κομψός.

Τι είναι στην πραγματικότητα ένα Transport Stream

Τα περισσότερα φορμά βίντεο που γνωρίζετε είναι αρχεία: ένα κοντέινερ με κεφαλίδα στην αρχή, ένα ευρετήριο για τη θέση όλων των στοιχείων και ένα καθορισμένο τέλος. Έτσι λειτουργεί το MP4. Είναι σχεδιασμένο να βρίσκεται σε έναν δίσκο και να επιτρέπει την αναζήτηση μέσα του.

Ένα transport stream δεν έχει αυτή τη μορφή. Είναι μια συνεχής ροή μικρών πακέτων σταθερού μεγέθους — 188 byte το καθένα — τα οποία μπορούν να ληφθούν από οποιοδήποτε σημείο.

Αυτή η σχεδιαστική επιλογή προήλθε από τις εκπομπές. Όταν συντονίζετε μια τηλεόραση σε ένα κανάλι, δεν ξεκινάτε από την αρχή κάποιου περιεχομένου. Συνδέεστε σε ένα σήμα που βρίσκεται ήδη σε εξέλιξη και η εικόνα πρέπει να εμφανιστεί μέσα σε ένα ή δύο δευτερόλεπτα. Ένα φορμά με κεφαλίδα στην αρχή και ευρετήριο θα ήταν άχρηστο: δεν υπάρχει αρχή.

Έτσι, ένα transport stream επαναλαμβάνει συνεχώς όλα όσα χρειάζεστε. Ανά διαστήματα ξαναστέλνει τους πίνακες που περιγράφουν ποιες ροές περιέχει και περιλαμβάνει τακτικά ένα πλήρες keyframe από το οποίο μπορείτε να ξεκινήσετε την αποκωδικοποίηση. Συνδεθείτε από οποιοδήποτε σημείο και μπορείτε να ξεκινήσετε την αναπαραγωγή μέσα σε ένα δευτερόλεπτο.

Αυτή είναι όλη η ιδέα και εξηγεί όλα τα υπόλοιπα.

Γιατί το υιοθέτησε το streaming στο διαδίκτυο

Το HLS — η μέθοδος streaming πίσω από τα περισσότερα live βίντεο που παρακολουθείτε — λειτουργεί κόβοντας το περιεχόμενο σε σύντομα τμήματα, συνήθως διάρκειας δύο έως δέκα δευτερολέπτων, και καταγράφοντάς τα σε ένα manifest. Το player σας λαμβάνει τα τμήματα διαδοχικά και, αν η σύνδεσή σας εξασθενήσει, αρχίζει διακριτικά να ζητά εκδόσεις χαμηλότερης ποιότητας αντί να κολλήσει.

Για να λειτουργήσει αυτό, κάθε τμήμα πρέπει να μπορεί να αποκωδικοποιηθεί ανεξάρτητα. Δεν γίνεται το τμήμα 47 να εξαρτάται από μια κεφαλίδα που υπάρχει μόνο στο τμήμα 1, επειδή το player μπορεί να συνδεθεί στο 47 ή να αλλάξει ποιότητα μεταξύ 46 και 47.

Το transport stream ήταν ήδη ακριβώς αυτό το φορμά. Αυτοπεριγραφόμενο, με δυνατότητα έναρξης από οποιοδήποτε σημείο και ανθεκτικό στις απώλειες. Το HLS δεν χρειάστηκε να επινοήσει φορμά τμημάτων· κληρονόμησε ένα φορμά εκπομπής που έλυνε το ίδιο πρόβλημα από την εποχή που ο ιστός δεν είχε ακόμη βίντεο.

Έτσι, όταν κοιτάτε μέσα σε ένα manifest .m3u8 και βλέπετε:

#EXTINF:6.000,
segment000.ts
#EXTINF:6.000,
segment001.ts

αυτά είναι κομμάτια transport stream διάρκειας έξι δευτερολέπτων. Η ροή σας δεν είναι ένα βίντεο. Είναι χιλιάδες μικρά βίντεο που ζητούνται με τη σειρά. (Γιατί αυτό σημαίνει ότι δεν μπορείτε απλώς να «μετατρέψετε» μια ροή σε MP4.)

.TS έναντι .MP4

.ts (MPEG-TS).mp4
ΜορφήΣυνεχής ροή πακέτωνΑρχειοθετημένο αρχείο με κεφαλίδα
Έναρξη από οποιοδήποτε σημείο;ΝαιΌχι — χρειάζεται την κεφαλίδα
Αντέχει σε απώλειες;Ναι, συγχρονίζεται ξανά στο επόμενο πακέτοΗ ζημιά μπορεί να καταστήσει άχρηστο ολόκληρο το αρχείο
ΑναζήτησηΑργή, χωρίς ευρετήριοΓρήγορη, με ευρετήριο
ΕπιβάρυνσηΥψηλότερη (οι κεφαλίδες επαναλαμβάνονται συνεχώς)Χαμηλότερη
Σχεδιασμένο γιαΕκπομπές και live streamingΑποθήκευση και αναπαραγωγή ολοκληρωμένων αρχείων

Κανένα δεν είναι καλύτερο. Επιλύουν αντίθετα προβλήματα. Το .ts είναι βελτιστοποιημένο για άφιξη, ενώ το .mp4 για παραμονή σε αδράνεια.

Γι’ αυτό η μετατροπή μεταξύ τους είναι, καταρχήν, τυπική διαδικασία χωρίς απώλειες — το βίντεο και ο ήχος στο εσωτερικό τους μπορεί να είναι πανομοιότυπα και να αλλάζει μόνο το περίβλημα.

Πού συναντάτε αρχεία .TS στην πράξη

  • Μέσα σε ροές HLS. Τα τμήματα που αναφέραμε παραπάνω. Δεν τα βλέπετε ποτέ μεμονωμένα· το player σας τα λαμβάνει και τα απορρίπτει.
  • Από πηγή τύπου Xtream με output=ts. Αυτή η παράμετρος ζητά από τον διακομιστή ακατέργαστο transport stream αντί για τμηματοποιημένο HLS. (Πώς δημιουργούνται αυτά τα URL.)
  • Από εξοπλισμό capture εκπομπών. Οι δέκτες, οι κάρτες capture και οι συσκευές εγγραφής συχνά γράφουν απευθείας σε .ts, επειδή αυτό είναι το σήμα που έφτασε ασύρματα.
  • Σε δίσκους Blu-ray, ως .m2ts — ένα πολύ συγγενικό φορμά.
  • Από βιντεοκάμερες, ιδιαίτερα μοντέλα AVCHD, τα οποία επίσης χρησιμοποιούν .m2ts.

Όταν ένα αρχείο .TS δεν αναπαράγεται

Συμβαίνει συχνά και συνήθως οφείλεται σε ένα από πέντε πράγματα.

1. Δεν υπάρχει συσχέτιση αρχείου. Τα Windows και το macOS δεν περιλαμβάνουν από προεπιλογή πρόγραμμα για το .ts. Το διπλό κλικ δεν κάνει τίποτα ή ανοίγει κάτι μη χρήσιμο. Δεν πρόκειται για καταστροφή· το αρχείο δεν έχει κανένα πρόβλημα. Ανοίξτε το μέσα από ένα player.

Ακόμη χειρότερα: σε ορισμένα συστήματα το .ts είναι συσχετισμένο με έναν επεξεργαστή κώδικα, επειδή είναι επίσης η επέκταση αρχείων πηγαίου κώδικα TypeScript. Ένα βίντεο που ανοίγει σε επεξεργαστή κειμένου προκαλεί σύγχυση, αλλά δεν είναι επικίνδυνο.

2. Φταίει ο codec στο εσωτερικό και όχι το κοντέινερ. Το .ts είναι ένα περίβλημα. Στο εσωτερικό μπορεί να υπάρχει MPEG-2 (παλαιότερες εκπομπές), H.264 ή HEVC. Αν η συσκευή σας δεν μπορεί να αποκωδικοποιήσει τον codec, το κοντέινερ δεν έχει σημασία. Το κλασικό σύμπτωμα είναι να αναπαράγεται ο ήχος με μαύρη εικόνα. (Μαύρη οθόνη αλλά ο ήχος λειτουργεί.)

Το MPEG-2 είναι συχνός ένοχος εδώ: είναι αρχαίο και ορισμένες σύγχρονες συσκευές δεν περιλαμβάνουν πλέον αποκωδικοποιητή γι’ αυτό, επειδή κανείς δεν περίμενε ότι θα εξακολουθούσε να τον χρειάζεται.

3. Ασυνήθιστος ήχος. Τα transport stream εκπομπών συχνά περιλαμβάνουν ήχο AC-3, E-AC-3 ή DTS. Το βίντεο αναπαράγεται, αλλά δεν υπάρχει ήχος. Πρόκειται για ζήτημα codec ή passthrough ήχου, όχι κοντέινερ. (Λύσεις για την απουσία ήχου.)

4. Μερική λήψη. Μια λήψη που διακόπηκε κατά την εγγραφή δημιουργεί ένα ημιτελές αρχείο. Το transport stream υποβαθμίζεται ομαλά — συνήθως θα αναπαραχθεί μέχρι το σημείο της διακοπής — και αυτό είναι ένα από τα πραγματικά πλεονεκτήματά του έναντι του MP4, όπου ένα ημιτελές αρχείο μπορεί να μην ανοίγει καθόλου.

5. Η αναζήτηση είναι αργή και μοιάζει με βλάβη. Δεν υπάρχει ευρετήριο, επομένως ένα player που μετακινείται μέσα σε ένα μεγάλο .ts πρέπει να κάνει σάρωση. Η αργή αναζήτηση σε ένα μεγάλο αρχείο transport stream είναι φυσιολογική συμπεριφορά και όχι σφάλμα.

Ποιο λογισμικό το ανοίγει

Για ένα αρχείο .ts στον υπολογιστή σας, τα player γενικής χρήσης τα χειρίζονται καλά. Τα VLC και mpv είναι οι καθιερωμένες επιλογές και ανοίγουν απευθείας transport stream, ακόμη και τα πιο προβληματικά. Αυτό είναι πραγματικά το δυνατό τους σημείο.

Για ροές που παραδίδονται ως transport stream μέσω δικτύου — μια πηγή Xtream με output=ts, μια λίστα αναπαραγωγής HLS με τμήματα .ts, μια συσκευή στο LAN σας — αυτό είναι η βασική δουλειά ενός player και το Tuneline το υποστηρίζει σε macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV και Apple TV.

Για να είμαστε ακριβείς ως προς το όριο, επειδή έχει σημασία: το Tuneline ανοίγει λίστες αναπαραγωγής και ροές, όχι τοπικά αρχεία βίντεο. Αν έχετε μια εγγραφή .ts στον σκληρό σας δίσκο, χρησιμοποιήστε το VLC ή το mpv. Αν λαμβάνετε transport stream μέσω δικτύου, αυτό ακριβώς έχει σχεδιαστεί να χειρίζεται το Tuneline.

Το ζήτημα output=ts έναντι output=m3u8

Αν η πηγή σας σάς επιτρέπει να επιλέξετε — και οι πηγές τύπου Xtream το επιτρέπουν — αξίζει να το κατανοήσετε, επειδή η αλλαγή αυτή διορθώνει πολλά προβλήματα αναπαραγωγής.

Το output=ts σας δίνει την ακατέργαστη, συνεχή ροή. Έχει τη μεγαλύτερη συμβατότητα, λειτουργεί ουσιαστικά παντού, αλλά δεν υποστηρίζει προσαρμοζόμενο bitrate. Σε αδύναμη σύνδεση, κολλάει αντί να υποβαθμίζει την ποιότητα.

Το output=m3u8 σας δίνει τμηματοποιημένο HLS. Συμπεριφέρεται καλύτερα σε ασταθείς συνδέσεις, επειδή το player μπορεί να μεταβεί σε χαμηλότερη ποιότητα κατά τη διάρκεια της ροής, και είναι γενικά πιο φιλικό προς τα δίκτυα κινητής.

Πρακτική συμβουλή: δοκιμάστε πρώτα το m3u8 σε κινητά και οριακά δίκτυα Wi-Fi· δοκιμάστε το ts όταν κάτι αρνείται να αναπαραχθεί εντελώς. Η αλλαγή της παραμέτρου απαιτεί την επεξεργασία ενός μόνο χαρακτήρα και επιλύει ένα εντυπωσιακά μεγάλο ποσοστό αναφορών του τύπου «δεν αναπαράγεται». (Γιατί οι ροές παρουσιάζουν διακοπές και τι τις διορθώνει πραγματικά.)

Συμπέρασμα

  • Το .ts είναι το MPEG Transport Stream, σχεδιασμένο για εκπομπές: μια συνεχή ροή πακέτων στην οποία μπορείτε να συνδεθείτε από οποιοδήποτε σημείο.
  • Το HLS το υιοθέτησε επειδή το streaming χρειάζεται τμήματα που αποκωδικοποιούνται ανεξάρτητα, κάτι που αυτό ήδη υποστήριζε.
  • Η live ροή σας αποτελείται από χιλιάδες σύντομα τμήματα .ts, όχι από ένα αρχείο.
  • Το .ts ξεκινά από οποιοδήποτε σημείο και αντέχει σε ζημιές· το .mp4 επιτρέπει γρήγορη αναζήτηση και αποθηκεύεται αποδοτικά. Διαφορετικές δουλειές.
  • Οι αποτυχίες αναπαραγωγής συνήθως οφείλονται στον κωδικοποιητή που περιέχεται μέσα (MPEG-2, HEVC, AC-3) και όχι στο κοντέινερ.
  • Η αργή αναζήτηση σε ένα μεγάλο .ts είναι φυσιολογική — δεν υπάρχει ευρετήριο.

Έχεις ροή μεταφοράς που έρχεται μέσω δικτύου; Κατέβασε το Tuneline — δωρεάν, χωρίς ενσωματωμένο περιεχόμενο, σε κάθε πλατφόρμα που διαθέτεις.

Κοινοποίηση άρθρου

The fast fix

Get Tuneline free

A clean, no-account media player for macOS, Windows, Linux, Android, TV, and iOS. Bring your own playlist.

Download free

The cross-platform media player behind these answers — new platforms, sync updates, the honest build story. No spam, unsubscribe anytime.

Διαβάστε αυτό το άρθρο σε άλλη γλώσσα

Το Tuneline είναι μια εφαρμογή αναπαραγωγής πολυμέσων. Δεν παρέχει, δεν φιλοξενεί και δεν διανέμει κανένα περιεχόμενο. Τη δική σας λίστα αναπαραγωγής τη φέρνετε εσείς, ακριβώς όπως με το VLC.