diff --git a/src/output/output_ts_base.cpp b/src/output/output_ts_base.cpp
index c8e4e02f..07b32c95 100644
--- a/src/output/output_ts_base.cpp
+++ b/src/output/output_ts_base.cpp
@@ -190,13 +190,15 @@ namespace Mist {
         tempLen += 7;
         //Make sure TS timestamp is sample-aligned, if possible
         uint32_t freq = Trk.rate;
-        uint64_t aacSamples = (packTime/90) * freq / 1000;
-        //round to nearest packet, assuming all 1024 samples (probably wrong, but meh)
-        aacSamples += 512;
-        aacSamples /= 1024;
-        aacSamples *= 1024;
-        //Get closest 90kHz clock time to perfect sample alignment
-        packTime = aacSamples * 90000 / freq;
+        if (freq){
+          uint64_t aacSamples = (packTime/90) * freq / 1000;
+          //round to nearest packet, assuming all 1024 samples (probably wrong, but meh)
+          aacSamples += 512;
+          aacSamples /= 1024;
+          aacSamples *= 1024;
+          //Get closest 90kHz clock time to perfect sample alignment
+          packTime = aacSamples * 90000 / freq;
+        }
       }
       bs = TS::Packet::getPESAudioLeadIn(tempLen, packTime, Trk.bps);
       fillPacket(bs.data(), bs.size(), firstPack, video, keyframe, pkgPid, contPkg);