diff --git a/lib/ts_packet.cpp b/lib/ts_packet.cpp
index 237e4b4a..2b57d6fa 100644
--- a/lib/ts_packet.cpp
+++ b/lib/ts_packet.cpp
@@ -993,12 +993,12 @@ namespace TS {
     if (vidTrack == -1){
       vidTrack = *(selectedTracks.begin());
     }
-    PMT.setPCRPID(vidTrack);
+    PMT.setPCRPID(256 + vidTrack);
     PMT.setProgramInfoLength(0);
     short id = 0;    
     ProgramMappingEntry entry = PMT.getEntry(0);
     for (std::set<long unsigned int>::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){
-      entry.setElementaryPid(*it);
+      entry.setElementaryPid(256 + *it);
       if (myMeta.tracks[*it].codec == "H264"){
         entry.setStreamType(0x1B);
       }else if (myMeta.tracks[*it].codec == "HEVC"){
diff --git a/src/output/output_ts_base.cpp b/src/output/output_ts_base.cpp
index 1f6f0375..cf2cfb48 100644
--- a/src/output/output_ts_base.cpp
+++ b/src/output/output_ts_base.cpp
@@ -33,7 +33,7 @@ namespace Mist {
     
     if (packData.getBytesFree() == 184){
       packData.clear();      
-      packData.setPID(thisPacket.getTrackId());      
+      packData.setPID(256 + thisPacket.getTrackId());      
       packData.setContinuityCounter(++contCounters[packData.getPID()]);
       if (first[thisPacket.getTrackId()]){
         packData.setUnitStart(1);