<?xml version="1.0" encoding="utf-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://taeyun.blog/</loc></url><url><loc>https://taeyun.blog/posts/</loc></url><url><loc>https://taeyun.blog/series/</loc></url><url><loc>https://taeyun.blog/about/</loc></url><url><loc>https://taeyun.blog/categories/</loc></url><url><loc>https://taeyun.blog/categories/projects/</loc></url><url><loc>https://taeyun.blog/categories/open-source/</loc></url><url><loc>https://taeyun.blog/categories/technical-notes/</loc></url><url><loc>https://taeyun.blog/categories/notes/</loc></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-live-dvr-separation-handoff/</loc><lastmod>2026-10-28T10:22:22.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-media-host-restart-lifecycle/</loc><lastmod>2026-10-28T10:22:04.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-nginx-playback-request-boundary/</loc><lastmod>2026-10-28T10:22:04.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-certloader-no-watcher-shutdown/</loc><lastmod>2026-10-28T09:38:23.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/harness-session-isolation-worktree-root/</loc><lastmod>2026-10-28T09:38:09.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-shared-db-auth-iam-tls/</loc><lastmod>2026-10-28T09:38:09.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/portfolio-engineering-notes/</loc><lastmod>2026-10-28T10:27:14.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/chat-highlight-research-and-fallback/</loc><lastmod>2026-10-16T06:21:24.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/clip-edit-recipe-render-boundary/</loc><lastmod>2026-10-16T06:21:24.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/coverage-gate-that-fails-when-tests-disappear/</loc><lastmod>2026-10-16T06:21:24.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/media-ci-path-filter-required-check-tradeoff/</loc><lastmod>2026-10-16T06:21:24.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/microphone-selection-without-always-on-vad/</loc><lastmod>2026-10-16T06:21:24.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/stream-id-contract-compatible-migration/</loc><lastmod>2026-10-16T06:21:24.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-auth-defaults-normalization-and-clone/</loc><lastmod>2026-10-16T06:24:45.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-certificate-watcher-close-join/</loc><lastmod>2026-10-28T09:38:04.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-hls-segment-count-validation/</loc><lastmod>2026-10-16T06:24:45.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-hook-exit-code-return/</loc><lastmod>2026-10-16T06:24:45.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-hook-output-backpressure-experiments/</loc><lastmod>2026-10-16T06:28:18.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-logger-reload-rejected-lifecycle-fix/</loc><lastmod>2026-10-16T06:28:18.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-offline-recording-source-lifecycle/</loc><lastmod>2026-10-16T06:24:45.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-seven-hooks-missing-exit-callback/</loc><lastmod>2026-10-16T06:28:18.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/shakedown-database-restore-proves-backup/</loc><lastmod>2026-10-16T06:20:57.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/shakedown-database-tls-identity-and-failover/</loc><lastmod>2026-10-16T06:20:57.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/shakedown-java-syntax-before-security-scan/</loc><lastmod>2026-10-16T06:20:57.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/shakedown-reboot-recovery-and-deletion/</loc><lastmod>2026-10-16T06:20:57.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-dependency-upgrade-contracts/</loc><lastmod>2026-10-16T06:20:57.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/shakedown-bounded-ai-image-generation/</loc><lastmod>2026-10-16T06:20:57.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/shakedown-plan-deployment-and-recovery/</loc><lastmod>2026-10-16T06:20:57.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/open-source-analysis/mediamtx-user-srt-passphrase-boundaries/</loc><lastmod>2026-10-28T09:38:04.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-cdn-timeline-normalization/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-database-authoritative-manifest-publishing/</loc><lastmod>2026-10-28T10:22:22.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-go-remux-same-io-benchmark/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-indexer-recovery-without-events/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-live-window-without-fork/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-manifest-window-boundaries/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-playback-producer-boundaries/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-reconnect-audio-gap/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-scratch-volume-ownership/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-segment-overlap-contract/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-session-url-and-endlist/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-storage-before-new-layer/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-test-database-ownership-marker/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-upload-state-and-recovery/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-zero-errors-missing-playback/</loc><lastmod>2026-10-16T06:16:58.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-audio-assignment-user-state/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-black-screen-three-causes/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-cdn-cache-auth-measurement/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-editing-upload-authorization/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-language-ownership-boundaries/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-live-editing-boundaries/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-mediamtx-build-or-adopt/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-multiaudio-end-to-end-verification/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-obs-shared-encoder-srt/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-one-time-pairing-contract/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-path-reconciler-design-history/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-secret-storage-migration-plan/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-six-track-input-contract/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-stateful-media-deployment/</loc><lastmod>2026-10-16T06:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-chat-collector-postmortem/</loc><lastmod>2026-07-04T16:00:56.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-v3-to-v4-cascade/</loc><lastmod>2026-07-03T07:30:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/live-transcoding-infrastructure/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/cmaf-deep-dive/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/nvenc-gpu-transcoding/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/abr-ladder-design/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/codec-decision-and-debugging/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/ffmpeg-deep-dive/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/av1-vp9-deep-dive/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/opus-deep-dive/</loc><lastmod>2026-06-20T06:25:34.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/h265-hdr-deep-dive/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/aac-and-friends/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/h264-deep-dive/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/whip-whep-modern-ingest/</loc><lastmod>2026-06-20T01:12:18.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/webrtc-deep-dive/</loc><lastmod>2026-06-20T01:04:12.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/srt-broadcaster-protocol/</loc><lastmod>2026-06-20T00:28:59.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/ll-hls-deep-dive/</loc><lastmod>2026-06-20T00:20:35.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/dash-vs-hls/</loc><lastmod>2026-06-19T19:17:40.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/hls-just-files/</loc><lastmod>2026-06-19T19:06:03.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/rtmp-still-alive/</loc><lastmod>2026-06-19T18:09:07.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/cdn-for-live-streaming/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/buffering-deep-dive/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/video-quality-bitrate-abr/</loc><lastmod>2026-06-14T01:40:52.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/streaming-basics-from-scratch/</loc><lastmod>2026-10-29T00:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/pokeclip-architecture/</loc><lastmod>2026-06-12T15:52:51.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/rtmp-mpeg-ts-srt/</loc><lastmod>2026-06-12T15:36:41.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/soma-k1-6month-goals/</loc><lastmod>2026-06-02T12:35:59.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/book-review/clean-architecture-review/</loc><lastmod>2026-05-31T09:27:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/hls-deep-dive/</loc><lastmod>2026-05-29T15:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/blog-improvement-report/</loc><lastmod>2026-05-20T09:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/0-to-1/github-pages-blog-automation/</loc><lastmod>2026-05-20T01:00:00.000Z</lastmod></url><url><loc>https://taeyun.blog/posts/tech-blurting/kafka-core-concepts-technical-review/</loc><lastmod>2026-05-18T01:00:00.000Z</lastmod></url></urlset>