Encodage MPEG-TS
J'ai un fichier que j'ai besoin de convertir au format MPEG-TS, de sorte qu'il s'adapte à la spécification ci-dessous:
Elementary stream bitrate [kbit/s]
vidéo: 2575
audio: 2 x 192
sous-titres: -
PAT/PMT: -
La farce: -
Composant TS bitrate [kbit/s]
vidéo: 2652
audio: 395
sous-titres: 45
PAT/PMT: 45
Farce: 62
Total: 3200 CBR
Composants supplémentaires requis:
PAT
PMT
Null paquets
Les composants susceptibles de pop-up:
NIT, SDT, EIT, etc.
vcodec="h264"
acodec="mpga"
bitrate="2500"
arate="192"
samplerate=48000
ext="mpg"
mux="ts"
vlc="/usr/bin/vlc"
fmt="mpg"
dst="/home/adam/test/"
for a in *$fmt; do
$vlc -I dummy -vvv "/home/adam/test/" --sout "#transcode{vcodec=$vcodec,venc=x264{profile=main,level=3.0,hrd=cbr,bframes=2},vb=$bitrate,acodec=$acodec,ab=$arate,samplerate=$samplerate,channels=2}:standard{mux=$mux,dst=\"$dst$a.$ext\",ac$
done
Après l'encodage avec le script ci-dessus, tout semble ok (pour la vidéo et l'audio le bitrate le codec est constante), à l'exception de deux choses: le Débit du conteneur doit aussi rester CBR mais ce n'est pas le cas. Aussi, la farce composant (0x1 ffff) - null paquet est manquant. Est-il possible pour vous de corriger le script de rendre nul paquet ainsi que le bitrate du conteneur constante (3,2 Mbits /s CBR) ?
La deuxième option est l'encodage avec ffmpeg:
ffmpeg -i video_input.mpg -i audio_input.mp2 -acodec copy -tune zerolatency -x264opts bitrate=2600:vbv-maxrate=2600:vbv-bufsize=166:nal_hrd=cbr -vpre libx264-iptv -vcodec libx264 -f mpegts -muxrate 3200K -y output.ts
mais comment faire pour désactiver/désactiver/supprimer le TSD de la table?
source d'informationauteur adismsc
Vous devez vous connecter pour publier un commentaire.
Étant donné que vous êtes conscient de la notion de NULLE paquets, vous pourriez avoir travaillé avec de catégorie commerciale de logiciel ou de matériel dans ce domaine.
Il y a une différence entre la RBC (de la vidéo) et le système de taux (ou multiplexeur taux). Lorsque la vidéo est encodée comme CBR, dire à 3,2 Mbps, il est tout à fait normal qu'il varier de quelques centaines de kbit /s autour de la marge. Donc le pic de débit, pourrait être dire 3.3 Mbps. C'est tout à fait ok. L'ajout d'une autre de 100 kbit /s l'Audio, le montant total maximum du débit peut être 3.4. Généralement, on pourrait définir le Système de taux au-dessus de 3,6 Mbit /s ou plus dans ce cas; où l'équilibre sont NULLES paquets.
Le système de taux de 3,5 Mbits /s NE peut pas fluctuer à tous. Si c'est le cas, la PCR synchronisation de base de coutume de travail et au fond, les choses ne fonctionnent pas dans l'environnement live. Donc, fondamentalement, vous pouvez penser de 3,5 Mbits /s (environ 240 paquets de 100 milisecond) peut être considéré comme un BUS. tous les sièges doivent être remplis jusqu'à assurer que le transport est continue. Généralement, il est fait de telle façon que quelques sièges restent vides.
Le plus triste est, ni VLC, ni aucun autre outil en open source va le faire pour vous.
Le hack nous utilisons a été, que nous avons utilisé pour envoyer de tels VLC flux de produit sur IP (d'où l'envoi TS flux sans NUL paquets est ok - et de les recevoir par la sortie d'un Multiplexeur à l'ASI ou telle interface, ce qui aurait ajouté multiplexeur.
Alternativement, vous pouvez utiliser Manzanita multiplexeur pour convertir votre Non-null TS flux de bon TS flux.
EDIT:
Basé sur le commentaire - si tout ce que vous devez faire est de désactiver le traitement spécial et différencié - il y a deux choses qui doit être fait.
Supprimer tous les paquets à partir du PID qui correspond au traitement spécial et différencié table. Si vous n'êtes pas entièrement dé-multiplexage vers et re-multiplexage - un moyen rapide de faire qui pourraient être ré-timbre le 13 bits numéro de PID par un NULL paquet de numéro de PID.
Supprimer la référence du PID SDT valeur dans le PAT de la table. Essentiellement, cela signifie que vous devez produire 3 à 4 paquets qui est corrigé PAT, et remplacer tous les PAT paquet de séquences dans le flux par ces corrigé paquets.