J'essaie de convertir un fichier source VBR SPTS MPEG-2 TS en CBR en utilisant ffmpeg. Le code J'utilise est le suivant:ffmpeg VBR -> Conversion CBR et streaming de fichiers vidéo MPEG-2 TS
#!/bin/bash
pkill ffmpeg
ffmpeg \
-re -i source.ts -c copy \
-muxrate 18000K \
-f mpegts \
udp://destination_ip:1234?pkt_size=1316
La source bitrate VPID est ~ 10Mbps et l'APID est 296Kbps. Donc, d'après ce que je comprends, ce code devrait fournir 18 Mbps CBR où la différence entre le muxrate et le bitrate de tous les PID est rempli avec des paquets nuls.
Le problème est que la sortie est loin d'être parfaite. Le débit global est au mieux semi-CBR. Il se situe entre 12 Mbps et 15 Mbps et je vois beaucoup de précision de PCR et d'erreurs de répétition de PCR ainsi que des erreurs CC à la fois sur le VPID et APID.
Hmm, ma version de ffmpeg est 2.8.11-0ubuntu0.16.04.1. Demain je peux essayer d'installer la dernière version de la source. Mais avec ma version actuelle, je n'ai aucun bourrage et le débit fluctue en grande partie. J'ai réussi à obtenir de meilleurs résultats en utilisant tsplay cependant. Et diffuser le même fichier TS génère en réalité moins d'erreurs de PCR. –
@ GeorgEStoyanov Si vous voulez vérifier rapidement la dernière sans compiler, essayez une version [statique] récente (https://johnvansickle.com/ffmpeg/). – LordNeckbeard
@ GeorgEStoyanov si vous voulez faire vrai CBR H.264 au lieu d'insérer des paquets NULL il y a une autre façon. – aergistal