diff --git a/cht/stream/manager.py b/cht/stream/manager.py index 652162d..d871a80 100644 --- a/cht/stream/manager.py +++ b/cht/stream/manager.py @@ -168,10 +168,11 @@ class StreamManager: return self.recorder.alive() if self.recorder else True # Rust owns it def start_scene_detector(self, on_new_frames=None): - if self.recorder: - self.recorder.set_on_new_scene_frames(on_new_frames) - else: - self.processor.set_on_new_frames(on_new_frames) + # GUI callback always goes to the processor — it fires on_new_frames + # after writing the JPEG to disk, regardless of how it got the frame. + self.processor.set_on_new_frames(on_new_frames) + if not self.recorder: + # Rust transport: processor connects to scene.sock and runs its own ffmpeg. self.processor.start_scene_detector(threshold=SCENE_THRESHOLD) def capture_now(self, on_new_frames=None): diff --git a/cht/stream/processor.py b/cht/stream/processor.py index 8e971e1..4c49e1a 100644 --- a/cht/stream/processor.py +++ b/cht/stream/processor.py @@ -496,10 +496,13 @@ class SessionProcessor: log.info("Audio chunk: %s (%.1fs → %.1fs, global %.1fs)", wav_path.name, processed_time, process_to, global_start) if self._on_new_audio: - self._on_new_audio( - wav_path, global_start, chunk_duration, - segment_path=source, local_start=processed_time, - ) + try: + self._on_new_audio( + wav_path, global_start, chunk_duration, + segment_path=source, local_start=processed_time, + ) + except Exception as e: + log.error("Audio callback failed: %s", e) chunk_num += 1 processed_time = process_to diff --git a/logs/client.log b/logs/client.log new file mode 100644 index 0000000..14eef89 --- /dev/null +++ b/logs/client.log @@ -0,0 +1,224 @@ +2026-04-10T19:00:38.728480Z INFO cht_common::logging: Logging to /home/mariano/wdir/cht/logs/client.log +2026-04-10T19:00:38.728522Z INFO cht_client: Backend: Subprocess (default) +2026-04-10T19:00:38.728533Z INFO cht_client: Waiting for server at mcrndeb:4447... +2026-04-10T19:00:38.730187Z INFO cht_client: Connected to mcrndeb:4447 +2026-04-10T19:00:38.730439Z INFO cht_client: Sent session_start +2026-04-10T19:00:38.731272Z INFO cht_client::pipeline: Backend: Subprocess (ffmpeg CLI) +2026-04-10T19:00:38.742621Z INFO cht_client::backends::subprocess: Audio sources — monitor: Some("alsa_output.usb-TASCAM_US-122_MKII_no_serial_number-00.analog-stereo.monitor"), mic: Some("alsa_input.usb-046d_C922_Pro_Stream_Webcam_B4B595AF-02.analog-stereo") +2026-04-10T19:00:38.742690Z INFO cht_client::backends::subprocess: ffmpeg args: ["-init_hw_device", "drm=drm:/dev/dri/card0", "-init_hw_device", "vaapi=va@drm", "-thread_queue_size", "512", "-device", "/dev/dri/card0", "-f", "kmsgrab", "-framerate", "30", "-i", "-", "-f", "pulse", "-thread_queue_size", "1024", "-i", "alsa_output.usb-TASCAM_US-122_MKII_no_serial_number-00.analog-stereo.monitor", "-f", "pulse", "-thread_queue_size", "1024", "-i", "alsa_input.usb-046d_C922_Pro_Stream_Webcam_B4B595AF-02.analog-stereo", "-filter_complex", "[1:a][2:a]amix=inputs=2:duration=longest[aout]", "-map", "0:v", "-map", "[aout]", "-vf", "hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12,fps=30", "-c:v", "h264_vaapi", "-qp", "20", "-g", "30", "-bf", "0", "-c:a", "aac", "-b:a", "128k", "-flush_packets", "1", "-fflags", "nobuffer", "-f", "nut", "pipe:1", "-hide_banner"] +2026-04-10T19:00:38.742924Z INFO cht_client::backends::subprocess: ffmpeg subprocess pid=3308297 +2026-04-10T19:00:38.813485Z INFO cht_client::backends::subprocess: [ffmpeg] There are 2 hardware devices. device va of type vaapi is picked for filters by default. Set hardware device explicitly with the filter_hw_device option if device va is not usable for filters. +2026-04-10T19:00:38.813672Z INFO cht_client::backends::subprocess: [ffmpeg] [in#0 @ 0x561abc4af3c0] Using plane 57 to locate framebuffers. +2026-04-10T19:00:38.813697Z INFO cht_client::backends::subprocess: [ffmpeg] [in#0 @ 0x561abc4af3c0] Template framebuffer is 117: 1920x1080 format 30335258 modifier 0 flags 0. +2026-04-10T19:00:39.482191Z INFO cht_client::backends::subprocess: [ffmpeg] Input #0, kmsgrab, from 'fd:': +2026-04-10T19:00:39.482250Z INFO cht_client::backends::subprocess: [ffmpeg] Duration: N/A, start: 1775847638.813729, bitrate: N/A +2026-04-10T19:00:39.482276Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #0:0: Video: wrapped_avframe, drm_prime, 1920x1080, 29.92 tbr, 1000k tbn, start 1775847638.813729 +2026-04-10T19:00:39.648166Z INFO cht_client::backends::subprocess: [ffmpeg] [aist#1:0/pcm_s16le @ 0x561abc4c4080] Guessed Channel Layout: stereo +2026-04-10T19:00:39.648221Z INFO cht_client::backends::subprocess: [ffmpeg] Input #1, pulse, from 'alsa_output.usb-TASCAM_US-122_MKII_no_serial_number-00.analog-stereo.monitor': +2026-04-10T19:00:39.648248Z INFO cht_client::backends::subprocess: [ffmpeg] Duration: N/A, start: 1775847639.604736, bitrate: 1536 kb/s +2026-04-10T19:00:39.648269Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s, start 1775847639.604736 +2026-04-10T19:00:39.926333Z INFO cht_client::backends::subprocess: [ffmpeg] [aist#2:0/pcm_s16le @ 0x561abc4cdf40] Guessed Channel Layout: stereo +2026-04-10T19:00:39.926386Z INFO cht_client::backends::subprocess: [ffmpeg] Input #2, pulse, from 'alsa_input.usb-046d_C922_Pro_Stream_Webcam_B4B595AF-02.analog-stereo': +2026-04-10T19:00:39.926412Z INFO cht_client::backends::subprocess: [ffmpeg] Duration: N/A, start: 1775847639.811260, bitrate: 1536 kb/s +2026-04-10T19:00:39.926435Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #2:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s, start 1775847639.811260 +2026-04-10T19:00:39.926463Z INFO cht_client::backends::subprocess: [ffmpeg] There are 2 hardware devices. device va of type vaapi is picked for filters by default. Set hardware device explicitly with the filter_hw_device option if device va is not usable for filters. +2026-04-10T19:00:39.927056Z INFO cht_client::backends::subprocess: [ffmpeg] Stream mapping: +2026-04-10T19:00:39.927084Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #1:0 (pcm_s16le) -> amix +2026-04-10T19:00:39.927104Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #2:0 (pcm_s16le) -> amix +2026-04-10T19:00:39.927123Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #0:0 -> #0:0 (wrapped_avframe (native) -> h264 (h264_vaapi)) +2026-04-10T19:00:39.927147Z INFO cht_client::backends::subprocess: [ffmpeg] amix:default -> Stream #0:1 (aac) +2026-04-10T19:00:39.927630Z INFO cht_client::backends::subprocess: [ffmpeg] There are 2 hardware devices. device va of type vaapi is picked for filters by default. Set hardware device explicitly with the filter_hw_device option if device va is not usable for filters. +2026-04-10T19:00:39.941427Z INFO cht_client::backends::subprocess: [ffmpeg] Last message repeated 1 times +2026-04-10T19:00:39.941487Z INFO cht_client::backends::subprocess: [ffmpeg] Output #0, nut, to 'pipe:1': +2026-04-10T19:00:39.941504Z INFO cht_client::backends::subprocess: [ffmpeg] Metadata: +2026-04-10T19:00:39.941525Z INFO cht_client::backends::subprocess: [ffmpeg] encoder : Lavf62.12.100 +2026-04-10T19:00:39.941546Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #0:0: Video: h264 (High) (H264 / 0x34363248), vaapi(tv, progressive), 1920x1080, q=2-31, 30 fps, 61440 tbn +2026-04-10T19:00:39.941569Z INFO cht_client::backends::subprocess: [ffmpeg] Metadata: +2026-04-10T19:00:39.941588Z INFO cht_client::backends::subprocess: [ffmpeg] encoder : Lavc62.28.100 h264_vaapi +2026-04-10T19:00:39.941610Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz, stereo, fltp, 128 kb/s +2026-04-10T19:00:39.941627Z INFO cht_client::backends::subprocess: [ffmpeg] Metadata: +2026-04-10T19:00:39.941639Z INFO cht_client::backends::subprocess: [ffmpeg] encoder : Lavc62.28.100 aac +2026-04-10T19:00:40.923323Z INFO cht_client::backends::subprocess: Demux: video_idx=0 tb=1/61440, audio_idx=1 tb=1/48000 +2026-04-10T19:00:40.923482Z INFO cht_client::backends::subprocess: Subprocess: 1 video, 1 audio packets +2026-04-10T19:00:40.924222Z INFO cht_client: Sent 1 video, 1 audio packets +2026-04-10T19:00:50.021396Z INFO cht_client::backends::subprocess: Subprocess: 301 video, 472 audio packets +2026-04-10T19:00:50.021670Z INFO cht_client: Sent 301 video, 472 audio packets +2026-04-10T19:01:00.038840Z INFO cht_client::backends::subprocess: Subprocess: 601 video, 941 audio packets +2026-04-10T19:01:00.039116Z INFO cht_client: Sent 601 video, 941 audio packets +2026-04-10T19:01:09.987407Z INFO cht_client::backends::subprocess: Subprocess: 901 video, 1408 audio packets +2026-04-10T19:01:09.987574Z INFO cht_client: Sent 901 video, 1408 audio packets +2026-04-10T19:01:19.934568Z INFO cht_client::backends::subprocess: Subprocess: 1201 video, 1875 audio packets +2026-04-10T19:01:19.934830Z INFO cht_client: Sent 1201 video, 1875 audio packets +2026-04-10T19:01:29.964169Z INFO cht_client::backends::subprocess: Subprocess: 1501 video, 2344 audio packets +2026-04-10T19:01:29.964524Z INFO cht_client: Sent 1501 video, 2344 audio packets +2026-04-10T19:01:39.977140Z INFO cht_client::backends::subprocess: Subprocess: 1801 video, 2813 audio packets +2026-04-10T19:01:39.977479Z INFO cht_client: Sent 1801 video, 2813 audio packets +2026-04-10T19:01:49.961423Z INFO cht_client::backends::subprocess: Subprocess: 2101 video, 3282 audio packets +2026-04-10T19:01:49.961768Z INFO cht_client: Sent 2101 video, 3282 audio packets +2026-04-10T19:01:59.946276Z INFO cht_client::backends::subprocess: Subprocess: 2401 video, 3750 audio packets +2026-04-10T19:01:59.946484Z INFO cht_client: Sent 2401 video, 3750 audio packets +2026-04-10T19:02:09.931075Z INFO cht_client::backends::subprocess: Subprocess: 2701 video, 4219 audio packets +2026-04-10T19:02:09.931308Z INFO cht_client: Sent 2701 video, 4219 audio packets +2026-04-10T19:02:20.000090Z INFO cht_client::backends::subprocess: Subprocess: 3001 video, 4688 audio packets +2026-04-10T19:02:20.000481Z INFO cht_client: Sent 3001 video, 4688 audio packets +2026-04-10T19:02:29.984348Z INFO cht_client::backends::subprocess: Subprocess: 3301 video, 5158 audio packets +2026-04-10T19:02:29.984529Z INFO cht_client: Sent 3301 video, 5158 audio packets +2026-04-10T19:02:39.968649Z INFO cht_client::backends::subprocess: Subprocess: 3601 video, 5626 audio packets +2026-04-10T19:02:39.968890Z INFO cht_client: Sent 3601 video, 5626 audio packets +2026-04-10T19:02:49.995801Z INFO cht_client::backends::subprocess: Subprocess: 3901 video, 6095 audio packets +2026-04-10T19:02:49.996062Z INFO cht_client: Sent 3901 video, 6095 audio packets +2026-04-10T19:03:00.009321Z INFO cht_client::backends::subprocess: Subprocess: 4201 video, 6564 audio packets +2026-04-10T19:03:00.009484Z INFO cht_client: Sent 4201 video, 6564 audio packets +2026-04-10T19:03:09.964675Z INFO cht_client::backends::subprocess: Subprocess: 4501 video, 7033 audio packets +2026-04-10T19:03:09.964919Z INFO cht_client: Sent 4501 video, 7033 audio packets +2026-04-10T19:03:15.042148Z INFO cht_client::backends::subprocess: Subprocess pipeline stopped (4652 video, 7269 audio packets) +2026-04-10T19:03:15.049768Z INFO cht_client::backends::subprocess: Stop watcher: sent SIGINT to ffmpeg pid=3308297 +2026-04-10T19:03:15.085890Z INFO cht_client::backends::subprocess: [ffmpeg] frame= 25 fps=0.0 q=-0.0 size= 634KiB time=00:00:00.48 bitrate=10647.9kbits/s speed=0.976x elapsed=0:00:00.50 frame= 39 fps= 39 q=-0.0 size= 642KiB time=00:00:00.98 bitrate=5356.4kbits/s speed=0.982x elapsed=0:00:01.00 frame= 58 fps= 39 q=-0.0 size= 939KiB time=00:00:01.34 bitrate=5737.7kbits/s speed=0.894x elapsed=0:00:01.50 frame= 71 fps= 35 q=-0.0 size= 1014KiB time=00:00:01.88 bitrate=4414.2kbits/s speed=0.941x elapsed=0:00:02.00 frame= 83 fps= 33 q=-0.0 size= 1303KiB time=00:00:02.37 bitrate=4486.7kbits/s speed=0.952x elapsed=0:00:02.50 frame= 103 fps= 34 q=-0.0 size= 1313KiB time=00:00:02.86 bitrate=3756.4kbits/s speed=0.955x elapsed=0:00:03.00 frame= 106 fps= 30 q=-0.0 size= 1604KiB time=00:00:03.38 bitrate=3885.0kbits/s speed=0.966x elapsed=0:00:03.50 frame= 137 fps= 34 q=-0.0 size= 1613KiB time=00:00:03.92 bitrate=3370.8kbits/s speed=0.98x elapsed=0:00:04.00 frame= 137 fps= 30 q=-0.0 size= 1903KiB time=00:00:04.43 bitrate=3515.0kbits/s speed=0.985x elapsed=0:00:04.50 frame= 169 fps= 34 q=-0.0 size= 1911KiB time=00:00:04.88 bitrate=3204.1kbits/s speed=0.977x elapsed=0:00:05.00 frame= 169 fps= 31 q=-0.0 size= 2201KiB time=00:00:05.38 bitrate=3349.5kbits/s speed=0.978x elapsed=0:00:05.50 frame= 201 fps= 33 q=-0.0 size= 2210KiB time=00:00:05.93 bitrate=3048.2kbits/s speed=0.99x elapsed=0:00:06.00 frame= 202 fps= 31 q=-0.0 size= 2500KiB time=00:00:06.45 bitrate=3174.2kbits/s speed=0.992x elapsed=0:00:06.50 frame= 228 fps= 33 q=-0.0 size= 2503KiB time=00:00:06.64 bitrate=3086.9kbits/s speed=0.949x elapsed=0:00:07.00 frame= 234 fps= 31 q=-0.0 size= 2797KiB time=00:00:07.43 bitrate=3082.2kbits/s speed=0.991x elapsed=0:00:07.50 frame= 254 fps= 32 q=-0.0 size= 2808KiB time=00:00:07.94 bitrate=2894.5kbits/s speed=0.993x elapsed=0:00:08.00 frame= 266 fps= 31 q=-0.0 size= 3096KiB time=00:00:08.39 bitrate=3019.8kbits/s speed=0.988x elapsed=0:00:08.50 frame= 280 fps= 31 q=-0.0 size= 3103KiB time=00:00:08.80 bitrate=2887.4kbits/s speed=0.978x elapsed=0:00:09.00 frame= 298 fps= 31 q=-0.0 size= 3455KiB time=00:00:09.44 bitrate=2996.6kbits/s speed=0.994x elapsed=0:00:09.50 frame= 306 fps= 31 q=-0.0 size= 3463KiB time=00:00:09.89 bitrate=2866.8kbits/s speed=0.989x elapsed=0:00:10.00 frame= 330 fps= 31 q=-0.0 size= 3745KiB time=00:00:10.40 bitrate=2948.0kbits/s speed=0.991x elapsed=0:00:10.50 frame= 332 fps= 30 q=-0.0 size= 3754KiB time=00:00:10.94 bitrate=2811.3kbits/s speed=0.994x elapsed=0:00:11.00 frame= 362 fps= 31 q=-0.0 size= 4117KiB time=00:00:11.45 bitrate=2945.6kbits/s speed=0.996x elapsed=0:00:11.50 frame= 362 fps= 30 q=-0.0 size= 4125KiB time=00:00:11.89 bitrate=2840.3kbits/s speed=0.991x elapsed=0:00:12.00 frame= 394 fps= 32 q=-0.0 size= 4280KiB time=00:00:12.38 bitrate=2829.8kbits/s speed=0.991x elapsed=0:00:12.50 frame= 394 fps= 30 q=-0.0 size= 4289KiB time=00:00:12.94 bitrate=2714.2kbits/s speed=0.996x elapsed=0:00:13.00 frame= 418 fps= 31 q=-0.0 size= 4370KiB time=00:00:13.45 bitrate=2660.3kbits/s speed=0.997x elapsed=0:00:13.50 frame= 426 fps= 30 q=-0.0 size= 4377KiB time=00:00:13.90 bitrate=2578.5kbits/s speed=0.993x elapsed=0:00:14.00 frame= 455 fps= 31 q=-0.0 size= 4635KiB time=00:00:14.39 bitrate=2637.4kbits/s speed=0.993x elapsed=0:00:14.50 frame= 458 fps= 31 q=-0.0 size= 4644KiB time=00:00:14.95 bitrate=2544.3kbits/s speed=0.997x elapsed=0:00:15.00 frame= 481 fps= 31 q=-0.0 size= 4907KiB time=00:00:15.39 bitrate=2610.4kbits/s speed=0.993x elapsed=0:00:15.50 frame= 490 fps= 31 q=-0.0 size= 4916KiB time=00:00:15.91 bitrate=2530.6kbits/s speed=0.994x elapsed=0:00:16.00 frame= 507 fps= 31 q=-0.0 size= 5177KiB time=00:00:16.40 bitrate=2585.4kbits/s speed=0.994x elapsed=0:00:16.50 frame= 522 fps= 31 q=-0.0 size= 5194KiB time=00:00:16.96 bitrate=2508.4kbits/s speed=0.998x elapsed=0:00:17.00 frame= 537 fps= 31 q=-0.0 size= 5457KiB time=00:00:17.34 bitrate=2577.7kbits/s speed=0.991x elapsed=0:00:17.50 frame= 553 fps= 31 q=-0.0 size= 5474KiB time=00:00:17.89 bitrate=2505.5kbits/s speed=0.994x elapsed=0:00:18.00 frame= 562 fps= 30 q=-0.0 size= 5744KiB time=00:00:18.40 bitrate=2556.1kbits/s speed=0.995x elapsed=0:00:18.50 frame= 585 fps= 31 q=-0.0 size= 5754KiB time=00:00:18.94 bitrate=2488.5kbits/s speed=0.997x elapsed=0:00:19.00 frame= 588 fps= 30 q=-0.0 size= 6022KiB time=00:00:19.41 bitrate=2541.4kbits/s speed=0.995x elapsed=0:00:19.50 frame= 617 fps= 31 q=-0.0 size= 6035KiB time=00:00:19.94 bitrate=2478.8kbits/s speed=0.997x elapsed=0:00:20.00 frame= 617 fps= 30 q=-0.0 size= 6300KiB time=00:00:20.45 bitrate=2523.2kbits/s speed=0.998x elapsed=0:00:20.50 frame= 649 fps= 31 q=-0.0 size= 6316KiB time=00:00:20.90 bitrate=2475.2kbits/s speed=0.995x elapsed=0:00:21.00 frame= 649 fps= 30 q=-0.0 size= 6581KiB time=00:00:21.39 bitrate=2519.7kbits/s speed=0.995x elapsed=0:00:21.50 frame= 681 fps= 31 q=-0.0 size= 6595KiB time=00:00:21.95 bitrate=2461.1kbits/s speed=0.998x elapsed=0:00:22.00 frame= 681 fps= 30 q=-0.0 size= 6857KiB time=00:00:22.46 bitrate=2500.8kbits/s speed=0.998x elapsed=0:00:22.50 frame= 711 fps= 31 q=-0.0 size= 6876KiB time=00:00:22.91 bitrate=2458.5kbits/s speed=0.996x elapsed=0:00:23.00 frame= 713 fps= 30 q=-0.0 size= 6906KiB time=00:00:23.44 bitrate=2413.1kbits/s speed=0.997x elapsed=0:00:23.50 frame= 737 fps= 31 q=-0.0 size= 6912KiB time=00:00:23.84 bitrate=2374.4kbits/s speed=0.994x elapsed=0:00:24.00 frame= 745 fps= 30 q=-0.0 size= 6943KiB time=00:00:24.40 bitrate=2330.6kbits/s speed=0.996x elapsed=0:00:24.50 frame= 763 fps= 31 q=-0.0 size= 6952KiB time=00:00:24.89 bitrate=2287.8kbits/s speed=0.996x elapsed=0:00:25.00 frame= 777 fps= 30 q=-0.0 size= 7021KiB time=00:00:25.44 bitrate=2260.0kbits/s speed=0.998x elapsed=0:00:25.50 frame= 790 fps= 30 q=-0.0 size= 7031KiB time=00:00:25.96 bitrate=2218.6kbits/s speed=0.998x elapsed=0:00:26.00 frame= 809 fps= 31 q=-0.0 size= 7195KiB time=00:00:26.41 bitrate=2231.4kbits/s speed=0.997x elapsed=0:00:26.50 frame= 819 fps= 30 q=-0.0 size= 7206KiB time=00:00:26.96 bitrate=2189.6kbits/s speed=0.998x elapsed=0:00:27.00 frame= 839 fps= 31 q=-0.0 size= 7337KiB time=00:00:27.48 bitrate=2186.6kbits/s speed=0.999x elapsed=0:00:27.50 frame= 847 fps= 30 q=-0.0 size= 7354KiB time=00:00:27.94 bitrate=2156.1kbits/s speed=0.998x elapsed=0:00:28.00 frame= 870 fps= 31 q=-0.0 size= 7503KiB time=00:00:28.43 bitrate=2161.5kbits/s speed=0.998x elapsed=0:00:28.50 frame= 880 fps= 30 q=-0.0 size= 7525KiB time=00:00:28.97 bitrate=2127.6kbits/s speed=0.999x elapsed=0:00:29.00 frame= 899 fps= 30 q=-0.0 size= 7807KiB time=00:00:29.50 bitrate=2167.6kbits/s speed= 1x elapsed=0:00:29.50 frame= 911 fps= 30 q=-0.0 size= 7818KiB time=00:00:29.94 bitrate=2138.7kbits/s speed=0.998x elapsed=0:00:30.00 frame= 929 fps= 30 q=-0.0 size= 8016KiB time=00:00:30.44 bitrate=2157.2kbits/s speed=0.998x elapsed=0:00:30.50 frame= 938 fps= 30 q=-0.0 size= 8033KiB time=00:00:31.00 bitrate=2122.1kbits/s speed= 1x elapsed=0:00:31.00 frame= 960 fps= 30 q=-0.0 size= 8221KiB time=00:00:31.50 bitrate=2137.5kbits/s speed= 1x elapsed=0:00:31.50 frame= 970 fps= 30 q=-0.0 size= 8241KiB time=00:00:31.97 bitrate=2111.1kbits/s speed=0.999x elapsed=0:00:32.00 frame= 989 fps= 30 q=-0.0 size= 8507KiB time=00:00:32.51 bitrate=2143.2kbits/s speed= 1x elapsed=0:00:32.50 frame= 1000 fps= 30 q=-0.0 size= 8527KiB time=00:00:33.02 bitrate=2115.0kbits/s speed= 1x elapsed=0:00:33.00 frame= 1019 fps= 30 q=-0.0 size= 8793KiB time=00:00:33.47 bitrate=2151.7kbits/s speed=0.999x elapsed=0:00:33.50 frame= 1032 fps= 30 q=-0.0 size= 8811KiB time=00:00:33.96 bitrate=2125.1kbits/s speed=0.999x elapsed=0:00:34.00 frame= 1048 fps= 30 q=-0.0 size= 9077KiB time=00:00:34.52 bitrate=2154.1kbits/s speed= 1x elapsed=0:00:34.50 frame= 1063 fps= 30 q=-0.0 size= 9095KiB time=00:00:34.96 bitrate=2130.6kbits/s speed=0.999x elapsed=0:00:35.00 frame= 1077 fps= 30 q=-0.0 size= 9291KiB time=00:00:35.47 bitrate=2145.2kbits/s speed=0.999x elapsed=0:00:35.50 frame= 1093 fps= 30 q=-0.0 size= 9380KiB time=00:00:36.01 bitrate=2133.8kbits/s speed= 1x elapsed=0:00:36.00 frame= 1107 fps= 30 q=-0.0 size= 9579KiB time=00:00:36.52 bitrate=2148.4kbits/s speed= 1x elapsed=0:00:36.50 frame= 1124 fps= 30 q=-0.0 size= 9625KiB time=00:00:36.97 bitrate=2132.5kbits/s speed=0.999x elapsed=0:00:37.00 frame= 1136 fps= 30 q=-0.0 size= 9885KiB time=00:00:37.46 bitrate=2161.5kbits/s speed=0.999x elapsed=0:00:37.50 frame= 1152 fps= 30 q=-0.0 size= 10027KiB time=00:00:38.01 bitrate=2160.4kbits/s speed= 1x elapsed=0:00:38.00 frame= 1167 fps= 30 q=-0.0 size= 10226KiB time=00:00:38.53 bitrate=2174.3kbits/s speed= 1x elapsed=0:00:38.50 frame= 1184 fps= 30 q=-0.0 size= 10288KiB time=00:00:38.97 bitrate=2162.3kbits/s speed=0.999x elapsed=0:00:39.00 frame= 1196 fps= 30 q=-0.0 size= 10548KiB time=00:00:39.51 bitrate=2187.0kbits/s speed= 1x elapsed=0:00:39.50 frame= 1215 fps= 30 q=-0.0 size= 10659KiB time=00:00:40.02 bitrate=2181.7kbits/s speed= 1x elapsed=0:00:40.00 frame= 1226 fps= 30 q=-0.0 size= 10857KiB time=00:00:40.49 bitrate=2196.5kbits/s speed= 1x elapsed=0:00:40.50 frame= 1246 fps= 30 q=-0.0 size= 11004KiB time=00:00:40.95 bitrate=2200.7kbits/s speed=0.999x elapsed=0:00:41.00 frame= 1255 fps= 30 q=-0.0 size= 11210KiB time=00:00:41.51 bitrate=2212.0kbits/s speed= 1x elapsed=0:00:41.50 frame= 1277 fps= 30 q=-0.0 size= 11324KiB time=00:00:42.02 bitrate=2207.2kbits/s speed= 1x elapsed=0:00:42.00 frame= 1285 fps= 30 q=-0.0 size= 11521KiB time=00:00:42.47 bitrate=2221.9kbits/s speed=0.999x elapsed=0:00:42.50 frame= 1305 fps= 30 q=-0.0 size= 11651KiB time=00:00:43.00 bitrate=2219.2kbits/s speed= 1x elapsed=0:00:43.00 frame= 1315 fps= 30 q=-0.0 size= 11847KiB time=00:00:43.52 bitrate=2229.9kbits/s speed= 1x elapsed=0:00:43.50 frame= 1336 fps= 30 q=-0.0 size= 11974KiB time=00:00:43.96 bitrate=2231.0kbits/s speed=0.999x elapsed=0:00:44.00 frame= 1345 fps= 30 q=-0.0 size= 12174KiB time=00:00:44.46 bitrate=2243.1kbits/s speed=0.999x elapsed=0:00:44.50 frame= 1368 fps= 30 q=-0.0 size= 12275KiB time=00:00:45.01 bitrate=2233.8kbits/s speed= 1x elapsed=0:00:45.00 frame= 1374 fps= 30 q=-0.0 size= 12474KiB time=00:00:45.52 bitrate=2244.5kbits/s speed= 1x elapsed=0:00:45.50 frame= 1398 fps= 30 q=-0.0 size= 12559KiB time=00:00:45.97 bitrate=2237.9kbits/s speed=0.999x elapsed=0:00:46.00 frame= 1404 fps= 30 q=-0.0 size= 12751KiB time=00:00:46.46 bitrate=2248.1kbits/s speed=0.999x elapsed=0:00:46.50 frame= 1429 fps= 30 q=-0.0 size= 12937KiB time=00:00:47.01 bitrate=2253.9kbits/s speed= 1x elapsed=0:00:47.00 frame= 1433 fps= 30 q=-0.0 size= 13135KiB time=00:00:47.51 bitrate=2264.8kbits/s speed= 1x elapsed=0:00:47.50 frame= 1457 fps= 30 q=-0.0 size= 13235KiB time=00:00:47.97 bitrate=2259.7kbits/s speed=0.999x elapsed=0:00:48.00 frame= 1464 fps= 30 q=-0.0 size= 13430KiB time=00:00:48.51 bitrate=2268.0kbits/s speed= 1x elapsed=0:00:48.50 frame= 1489 fps= 30 q=-0.0 size= 13554KiB time=00:00:48.95 bitrate=2268.0kbits/s speed=0.999x elapsed=0:00:49.00 frame= 1493 fps= 30 q=-0.0 size= 13746KiB time=00:00:49.47 bitrate=2276.2kbits/s speed=0.999x elapsed=0:00:49.50 frame= 1516 fps= 30 q=-0.0 size= 13873KiB time=00:00:49.96 bitrate=2274.7kbits/s speed=0.999x elapsed=0:00:50.00 frame= 1524 fps= 30 q=-0.0 size= 14068KiB time=00:00:50.51 bitrate=2281.3kbits/s speed= 1x elapsed=0:00:50.50 frame= 1549 fps= 30 q=-0.0 size= 14191KiB time=00:00:50.96 bitrate=2281.0kbits/s speed=0.999x elapsed=0:00:51.00 frame= 1554 fps= 30 q=-0.0 size= 14380KiB time=00:00:51.47 bitrate=2288.4kbits/s speed=0.999x elapsed=0:00:51.50 frame= 1580 fps= 30 q=-0.0 size= 14513KiB time=00:00:52.01 bitrate=2285.8kbits/s speed= 1x elapsed=0:00:52.00 frame= 1583 fps= 30 q=-0.0 size= 14706KiB time=00:00:52.52 bitrate=2293.7kbits/s speed= 1x elapsed=0:00:52.50 frame= 1611 fps= 30 q=-0.0 size= 14807KiB time=00:00:52.97 bitrate=2289.9kbits/s speed=0.999x elapsed=0:00:53.00 frame= 1613 fps= 30 q=-0.0 size= 15001KiB time=00:00:53.46 bitrate=2298.7kbits/s speed=0.999x elapsed=0:00:53.50 frame= 1642 fps= 30 q=-0.0 size= 15123KiB time=00:00:54.01 bitrate=2293.5kbits/s speed= 1x elapsed=0:00:54.00 frame= 1642 fps= 30 q=-0.0 size= 15317KiB time=00:00:54.52 bitrate=2301.1kbits/s speed= 1x elapsed=0:00:54.50 frame= 1670 fps= 30 q=-0.0 size= 15415KiB time=00:00:54.97 bitrate=2297.1kbits/s speed=0.999x elapsed=0:00:55.00 frame= 1673 fps= 30 q=-0.0 size= 15609KiB time=00:00:55.51 bitrate=2303.6kbits/s speed= 1x elapsed=0:00:55.50 frame= 1698 fps= 30 q=-0.0 size= 15712KiB time=00:00:56.02 bitrate=2297.6kbits/s speed= 1x elapsed=0:00:56.00 frame= 1703 fps= 30 q=-0.0 size= 15901KiB time=00:00:56.51 bitrate=2305.0kbits/s speed= 1x elapsed=0:00:56.50 frame= 1726 fps= 30 q=-0.0 size= 16057KiB time=00:00:56.96 bitrate=2309.3kbits/s speed=0.999x elapsed=0:00:57.00 frame= 1734 fps= 30 q=-0.0 size= 16250KiB time=00:00:57.51 bitrate=2314.6kbits/s speed= 1x elapsed=0:00:57.50 frame= 1759 fps= 30 q=-0.0 size= 16363KiB time=00:00:58.02 bitrate=2310.1kbits/s speed= 1x elapsed=0:00:58.00 frame= 1764 fps= 30 q=-0.0 size= 16553KiB time=00:00:58.47 bitrate=2319.0kbits/s speed=0.999x elapsed=0:00:58.50 frame= 1791 fps= 30 q=-0.0 size= 16701KiB time=00:00:59.00 bitrate=2318.6kbits/s speed= 1x elapsed=0:00:59.00 frame= 1793 fps= 30 q=-0.0 size= 16882KiB time=00:00:59.52 bitrate=2323.4kbits/s speed= 1x elapsed=0:00:59.50 frame= 1821 fps= 30 q=-0.0 size= 17045KiB time=00:01:00.01 bitrate=2326.8kbits/s speed= 1x elapsed=0:01:00.01 frame= 1822 fps= 30 q=-0.0 size= 17222KiB time=00:01:00.45 bitrate=2333.5kbits/s speed=0.999x elapsed=0:01:00.51 frame= 1852 fps= 30 q=-0.0 size= 17346KiB time=00:01:01.01 bitrate=2329.0kbits/s speed= 1x elapsed=0:01:01.01 frame= 1852 fps= 30 q=-0.0 size= 17529KiB time=00:01:01.52 bitrate=2333.9kbits/s speed= 1x elapsed=0:01:01.51 frame= 1879 fps= 30 q=-0.0 size= 17682KiB time=00:01:01.97 bitrate=2337.3kbits/s speed=0.999x elapsed=0:01:02.01 frame= 1883 fps= 30 q=-0.0 size= 17874KiB time=00:01:02.46 bitrate=2344.1kbits/s speed=0.999x elapsed=0:01:02.51 frame= 1912 fps= 30 q=-0.0 size= 17991KiB time=00:01:03.01 bitrate=2338.7kbits/s speed= 1x elapsed=0:01:03.01 frame= 1912 fps= 30 q=-0.0 size= 18181KiB time=00:01:03.50 bitrate=2345.2kbits/s speed= 1x elapsed=0:01:03.51 frame= 1941 fps= 30 q=-0.0 size= 18324KiB time=00:01:03.97 bitrate=2346.3kbits/s speed=0.999x elapsed=0:01:04.01 frame= 1941 fps= 30 q=-0.0 size= 18511KiB time=00:01:04.51 bitrate=2350.6kbits/s speed= 1x elapsed=0:01:04.51 frame= 1971 fps= 30 q=-0.0 size= 18696KiB time=00:01:05.02 bitrate=2355.4kbits/s speed= 1x elapsed=0:01:05.01 frame= 1971 fps= 30 q=-0.0 size= 18878KiB time=00:01:05.49 bitrate=2361.2kbits/s speed= 1x elapsed=0:01:05.51 frame= 2000 fps= 30 q=-0.0 size= 19010KiB time=00:01:05.96 bitrate=2360.9kbits/s speed=0.999x elapsed=0:01:06.01 frame= 2000 fps= 30 q=-0.0 size= 19197KiB time=00:01:06.51 bitrate=2364.2kbits/s speed= 1x elapsed=0:01:06.51 frame= 2031 fps= 30 q=-0.0 size= 19369KiB time=00:01:07.00 bitrate=2367.9kbits/s speed= 1x elapsed=0:01:07.01 frame= 2031 fps= 30 q=-0.0 size= 19549KiB time=00:01:07.47 bitrate=2373.4kbits/s speed=0.999x elapsed=0:01:07.51 frame= 2060 fps= 30 q=-0.0 size= 19707KiB time=00:01:08.01 bitrate=2373.7kbits/s speed= 1x elapsed=0:01:08.01 frame= 2060 fps= 30 q=-0.0 size= 19891KiB time=00:01:08.52 bitrate=2378.0kbits/s speed= 1x elapsed=0:01:08.51 frame= 2090 fps= 30 q=-0.0 size= 20037KiB time=00:01:09.01 bitrate=2378.4kbits/s speed= 1x elapsed=0:01:09.01 frame= 2090 fps= 30 q=-0.0 size= 20223KiB time=00:01:09.46 bitrate=2384.9kbits/s speed=0.999x elapsed=0:01:09.51 frame= 2119 fps= 30 q=-0.0 size= 20332KiB time=00:01:10.01 bitrate=2378.9kbits/s speed= 1x elapsed=0:01:10.01 frame= 2119 fps= 30 q=-0.0 size= 20523KiB time=00:01:10.52 bitrate=2383.8kbits/s speed= 1x elapsed=0:01:10.51 frame= 2149 fps= 30 q=-0.0 size= 20654KiB time=00:01:10.97 bitrate=2383.8kbits/s speed= 1x elapsed=0:01:11.01 frame= 2149 fps= 30 q=-0.0 size= 20847KiB time=00:01:11.51 bitrate=2388.1kbits/s speed= 1x elapsed=0:01:11.51 frame= 2180 fps= 30 q=-0.0 size= 20949KiB time=00:01:12.02 bitrate=2382.8kbits/s speed= 1x elapsed=0:01:12.01 frame= 2180 fps= 30 q=-0.0 size= 21141KiB time=00:01:12.51 bitrate=2388.4kbits/s speed= 1x elapsed=0:01:12.51 frame= 2209 fps= 30 q=-0.0 size= 21277KiB time=00:01:12.96 bitrate=2388.9kbits/s speed=0.999x elapsed=0:01:13.01 frame= 2209 fps= 30 q=-0.0 size= 21461KiB time=00:01:13.51 bitrate=2391.5kbits/s speed= 1x elapsed=0:01:13.51 frame= 2238 fps= 30 q=-0.0 size= 21598KiB time=00:01:14.02 bitrate=2390.0kbits/s speed= 1x elapsed=0:01:14.01 frame= 2238 fps= 30 q=-0.0 size= 21778KiB time=00:01:14.47 bitrate=2395.5kbits/s speed= 1x elapsed=0:01:14.51 frame= 2268 fps= 30 q=-0.0 size= 21904KiB time=00:01:15.00 bitrate=2392.2kbits/s speed= 1x elapsed=0:01:15.01 frame= 2270 fps= 30 q=-0.0 size= 22087KiB time=00:01:15.51 bitrate=2395.9kbits/s speed= 1x elapsed=0:01:15.51 frame= 2297 fps= 30 q=-0.0 size= 22188KiB time=00:01:16.01 bitrate=2391.3kbits/s speed= 1x elapsed=0:01:16.01 frame= 2297 fps= 30 q=-0.0 size= 22372KiB time=00:01:16.45 bitrate=2396.9kbits/s speed=0.999x elapsed=0:01:16.51 frame= 2328 fps= 30 q=-0.0 size= 22479KiB time=00:01:17.01 bitrate=2391.1kbits/s speed= 1x elapsed=0:01:17.01 frame= 2329 fps= 30 q=-0.0 size= 22665KiB time=00:01:17.52 bitrate=2394.9kbits/s speed= 1x elapsed=0:01:17.51 frame= 2357 fps= 30 q=-0.0 size= 22763KiB time=00:01:17.99 bitrate=2390.8kbits/s speed= 1x elapsed=0:01:18.01 frame= 2357 fps= 30 q=-0.0 size= 22950KiB time=00:01:18.46 bitrate=2396.0kbits/s speed=0.999x elapsed=0:01:18.51 frame= 2388 fps= 30 q=-0.0 size= 23075KiB time=00:01:19.02 bitrate=2392.1kbits/s speed= 1x elapsed=0:01:19.01 frame= 2389 fps= 30 q=-0.0 size= 23259KiB time=00:01:19.51 bitrate=2396.4kbits/s speed= 1x elapsed=0:01:19.51 frame= 2418 fps= 30 q=-0.0 size= 23350KiB time=00:01:19.98 bitrate=2391.6kbits/s speed= 1x elapsed=0:01:20.01 frame= 2421 fps= 30 q=-0.0 size= 23540KiB time=00:01:20.51 bitrate=2395.2kbits/s speed= 1x elapsed=0:01:20.51 frame= 2447 fps= 30 q=-0.0 size= 23650KiB time=00:01:21.02 bitrate=2391.1kbits/s speed= 1x elapsed=0:01:21.01 frame= 2451 fps= 30 q=-0.0 size= 23848KiB time=00:01:21.47 bitrate=2397.9kbits/s speed= 1x elapsed=0:01:21.51 frame= 2477 fps= 30 q=-0.0 size= 23947KiB time=00:01:21.96 bitrate=2393.4kbits/s speed=0.999x elapsed=0:01:22.01 frame= 2483 fps= 30 q=-0.0 size= 24152KiB time=00:01:22.51 bitrate=2397.7kbits/s speed= 1x elapsed=0:01:22.51 frame= 2506 fps= 30 q=-0.0 size= 24256KiB time=00:01:23.01 bitrate=2393.8kbits/s speed= 1x elapsed=0:01:23.01 frame= 2510 fps= 30 q=-0.0 size= 24460KiB time=00:01:23.47 bitrate=2400.4kbits/s speed= 1x elapsed=0:01:23.51 frame= 2537 fps= 30 q=-0.0 size= 24562KiB time=00:01:24.01 bitrate=2395.0kbits/s speed= 1x elapsed=0:01:24.01 frame= 2539 fps= 30 q=-0.0 size= 24762KiB time=00:01:24.52 bitrate=2400.0kbits/s speed= 1x elapsed=0:01:24.51 frame= 2567 fps= 30 q=-0.0 size= 24879KiB time=00:01:25.01 bitrate=2397.4kbits/s speed= 1x elapsed=0:01:25.01 frame= 2567 fps= 30 q=-0.0 size= 25074KiB time=00:01:25.46 bitrate=2403.5kbits/s speed=0.999x elapsed=0:01:25.51 frame= 2598 fps= 30 q=-0.0 size= 25213KiB time=00:01:26.01 bitrate=2401.2kbits/s speed= 1x elapsed=0:01:26.01 frame= 2599 fps= 30 q=-0.0 size= 25418KiB time=00:01:26.52 bitrate=2406.4kbits/s speed= 1x elapsed=0:01:26.51 frame= 2628 fps= 30 q=-0.0 size= 25509KiB time=00:01:26.97 bitrate=2402.5kbits/s speed= 1x elapsed=0:01:27.01 frame= 2631 fps= 30 q=-0.0 size= 25712KiB time=00:01:27.51 bitrate=2406.9kbits/s speed= 1x elapsed=0:01:27.51 frame= 2657 fps= 30 q=-0.0 size= 25804KiB time=00:01:28.02 bitrate=2401.5kbits/s speed= 1x elapsed=0:01:28.01 frame= 2661 fps= 30 q=-0.0 size= 26004KiB time=00:01:28.47 bitrate=2407.9kbits/s speed=0.999x elapsed=0:01:28.51 frame= 2686 fps= 30 q=-0.0 size= 26150KiB time=00:01:28.96 bitrate=2408.0kbits/s speed=0.999x elapsed=0:01:29.01 frame= 2692 fps= 30 q=-0.0 size= 26356KiB time=00:01:29.51 bitrate=2412.0kbits/s speed= 1x elapsed=0:01:29.51 frame= 2716 fps= 30 q=-0.0 size= 26459KiB time=00:01:30.02 bitrate=2407.6kbits/s speed= 1x elapsed=0:01:30.01 frame= 2720 fps= 30 q=-0.0 size= 26657KiB time=00:01:30.47 bitrate=2413.6kbits/s speed= 1x elapsed=0:01:30.51 frame= 2747 fps= 30 q=-0.0 size= 26805KiB time=00:01:31.00 bitrate=2412.8kbits/s speed= 1x elapsed=0:01:31.01 frame= 2752 fps= 30 q=-0.0 size= 27012KiB time=00:01:31.52 bitrate=2417.8kbits/s speed= 1x elapsed=0:01:31.51 frame= 2776 fps= 30 q=-0.0 size= 27113KiB time=00:01:32.01 bitrate=2413.9kbits/s speed= 1x elapsed=0:01:32.01 frame= 2783 fps= 30 q=-0.0 size= 27305KiB time=00:01:32.46 bitrate=2419.2kbits/s speed=0.999x elapsed=0:01:32.51 frame= 2805 fps= 30 q=-0.0 size= 27458KiB time=00:01:33.01 bitrate=2418.3kbits/s speed= 1x elapsed=0:01:33.01 frame= 2813 fps= 30 q=-0.0 size= 27661KiB time=00:01:33.52 bitrate=2422.8kbits/s speed= 1x elapsed=0:01:33.51 frame= 2835 fps= 30 q=-0.0 size= 27759KiB time=00:01:34.01 bitrate=2418.7kbits/s speed= 1x elapsed=0:01:34.01 frame= 2845 fps= 30 q=-0.0 size= 27946KiB time=00:01:34.46 bitrate=2423.4kbits/s speed=0.999x elapsed=0:01:34.51 frame= 2864 fps= 30 q=-0.0 size= 28040KiB time=00:01:35.02 bitrate=2417.4kbits/s speed= 1x elapsed=0:01:35.01 frame= 2872 fps= 30 q=-0.0 size= 28229KiB time=00:01:35.51 bitrate=2421.2kbits/s speed= 1x elapsed=0:01:35.51 frame= 2895 fps= 30 q=-0.0 size= 28322KiB time=00:01:35.98 bitrate=2417.3kbits/s speed= 1x elapsed=0:01:36.01 frame= 2905 fps= 30 q=-0.0 size= 28511KiB time=00:01:36.51 bitrate=2420.0kbits/s speed= 1x elapsed=0:01:36.51 frame= 2925 fps= 30 q=-0.0 size= 28604KiB time=00:01:37.02 bitrate=2415.1kbits/s speed= 1x elapsed=0:01:37.01 frame= 2936 fps= 30 q=-0.0 size= 28793KiB time=00:01:37.51 bitrate=2418.8kbits/s speed= 1x elapsed=0:01:37.51 frame= 2954 fps= 30 q=-0.0 size= 28947KiB time=00:01:37.96 bitrate=2420.7kbits/s speed=0.999x elapsed=0:01:38.01 frame= 2966 fps= 30 q=-0.0 size= 29146KiB time=00:01:38.51 bitrate=2423.5kbits/s speed= 1x elapsed=0:01:38.51 frame= 2983 fps= 30 q=-0.0 size= 29294KiB time=00:01:39.00 bitrate=2423.8kbits/s speed= 1x elapsed=0:01:39.01 frame= 2997 fps= 30 q=-0.0 size= 29491KiB time=00:01:39.47 bitrate=2428.5kbits/s speed= 1x elapsed=0:01:39.51 frame= 3013 fps= 30 q=-0.0 size= 29689KiB time=00:01:40.01 bitrate=2431.8kbits/s speed= 1x elapsed=0:01:40.01 frame= 3025 fps= 30 q=-0.0 size= 29938KiB time=00:01:40.52 bitrate=2439.7kbits/s speed= 1x elapsed=0:01:40.51 frame= 3044 fps= 30 q=-0.0 size= 30106KiB time=00:01:41.01 bitrate=2441.4kbits/s speed= 1x elapsed=0:01:41.01 frame= 3057 fps= 30 q=-0.0 size= 30318KiB time=00:01:41.46 bitrate=2447.8kbits/s speed=0.999x elapsed=0:01:41.51 frame= 3073 fps= 30 q=-0.0 size= 30528KiB time=00:01:42.01 bitrate=2451.4kbits/s speed= 1x elapsed=0:01:42.01 frame= 3088 fps= 30 q=-0.0 size= 30755KiB time=00:01:42.53 bitrate=2457.2kbits/s speed= 1x elapsed=0:01:42.51 frame= 3102 fps= 30 q=-0.0 size= 30873KiB time=00:01:43.02 bitrate=2455.0kbits/s speed= 1x elapsed=0:01:43.01 frame= 3119 fps= 30 q=-0.0 size= 31198KiB time=00:01:43.51 bitrate=2469.1kbits/s speed= 1x elapsed=0:01:43.51 frame= 3132 fps= 30 q=-0.0 size= 31232KiB time=00:01:44.02 bitrate=2459.5kbits/s speed= 1x elapsed=0:01:44.01 frame= 3150 fps= 30 q=-0.0 size= 31575KiB time=00:01:44.51 bitrate=2474.9kbits/s speed= 1x elapsed=0:01:44.51 frame= 3161 fps= 30 q=-0.0 size= 31606KiB time=00:01:44.96 bitrate=2466.8kbits/s speed=0.999x elapsed=0:01:45.01 frame= 3177 fps= 30 q=-0.0 size= 31940KiB time=00:01:45.51 bitrate=2479.7kbits/s speed= 1x elapsed=0:01:45.51 frame= 3192 fps= 30 q=-0.0 size= 31966KiB time=00:01:46.02 bitrate=2469.8kbits/s speed= 1x elapsed=0:01:46.01 frame= 3210 fps= 30 q=-0.0 size= 32169KiB time=00:01:46.49 bitrate=2474.5kbits/s speed= 1x elapsed=0:01:46.51 frame= 3221 fps= 30 q=-0.0 size= 32299KiB time=00:01:47.00 bitrate=2472.7kbits/s speed= 1x elapsed=0:01:47.01 frame= 3239 fps= 30 q=-0.0 size= 32707KiB time=00:01:47.46 bitrate=2493.1kbits/s speed= 1x elapsed=0:01:47.51 frame= 3252 fps= 30 q=-0.0 size= 32725KiB time=00:01:47.99 bitrate=2482.3kbits/s speed= 1x elapsed=0:01:48.01 frame= 3267 fps= 30 q=-0.0 size= 32915KiB time=00:01:48.44 bitrate=2486.5kbits/s speed=0.999x elapsed=0:01:48.51 frame= 3283 fps= 30 q=-0.0 size= 32927KiB time=00:01:48.99 bitrate=2474.7kbits/s speed= 1x elapsed=0:01:49.01 frame= 3296 fps= 30 q=-0.0 size= 33118KiB time=00:01:49.44 bitrate=2479.0kbits/s speed=0.999x elapsed=0:01:49.51 frame= 3314 fps= 30 q=-0.0 size= 33127KiB time=00:01:49.99 bitrate=2467.2kbits/s speed= 1x elapsed=0:01:50.01 frame= 3325 fps= 30 q=-0.0 size= 33318KiB time=00:01:50.44 bitrate=2471.4kbits/s speed=0.999x elapsed=0:01:50.51 frame= 3344 fps= 30 q=-0.0 size= 33327KiB time=00:01:50.99 bitrate=2459.6kbits/s speed= 1x elapsed=0:01:51.01 frame= 3353 fps= 30 q=-0.0 size= 33519KiB time=00:01:51.48 bitrate=2462.9kbits/s speed= 1x elapsed=0:01:51.51 frame= 3375 fps= 30 q=-0.0 size= 33527KiB time=00:01:51.95 bitrate=2453.2kbits/s speed=0.999x elapsed=0:01:52.01 frame= 3386 fps= 30 q=-0.0 size= 33720KiB time=00:01:52.49 bitrate=2455.6kbits/s speed= 1x elapsed=0:01:52.51 frame= 3405 fps= 30 q=-0.0 size= 33727KiB time=00:01:53.00 bitrate=2445.0kbits/s speed= 1x elapsed=0:01:53.01 frame= 3410 fps= 30 q=-0.0 size= 33919KiB time=00:01:53.49 bitrate=2448.3kbits/s speed= 1x elapsed=0:01:53.51 frame= 3437 fps= 30 q=-0.0 size= 34116KiB time=00:01:53.94 bitrate=2452.8kbits/s speed=0.999x elapsed=0:01:54.01 frame= 3440 fps= 30 q=-0.0 size= 34318KiB time=00:01:54.50 bitrate=2455.3kbits/s speed= 1x elapsed=0:01:54.51 frame= 3467 fps= 30 q=-0.0 size= 34327KiB time=00:01:54.98 bitrate=2445.5kbits/s speed= 1x elapsed=0:01:55.01 frame= 3468 fps= 30 q=-0.0 size= 34528KiB time=00:01:55.50 bitrate=2448.9kbits/s speed= 1x elapsed=0:01:55.51 frame= 3498 fps= 30 q=-0.0 size= 34537KiB time=00:01:55.99 bitrate=2439.2kbits/s speed= 1x elapsed=0:01:56.01 frame= 3500 fps= 30 q=-0.0 size= 34738KiB time=00:01:56.50 bitrate=2442.6kbits/s speed= 1x elapsed=0:01:56.51 frame= 3527 fps= 30 q=-0.0 size= 34747KiB time=00:01:56.99 bitrate=2433.0kbits/s speed= 1x elapsed=0:01:57.02 frame= 3527 fps= 30 q=-0.0 size= 34945KiB time=00:01:57.44 bitrate=2437.5kbits/s speed=0.999x elapsed=0:01:57.52 frame= 3558 fps= 30 q=-0.0 size= 34956KiB time=00:01:57.99 bitrate=2426.8kbits/s speed= 1x elapsed=0:01:58.02 frame= 3560 fps= 30 q=-0.0 size= 35156KiB time=00:01:58.51 bitrate=2430.1kbits/s speed= 1x elapsed=0:01:58.52 frame= 3588 fps= 30 q=-0.0 size= 35165KiB time=00:01:59.00 bitrate=2420.8kbits/s speed= 1x elapsed=0:01:59.02 frame= 3588 fps= 30 q=-0.0 size= 35364KiB time=00:01:59.49 bitrate=2424.4kbits/s speed= 1x elapsed=0:01:59.52 frame= 3620 fps= 30 q=-0.0 size= 35374KiB time=00:02:00.00 bitrate=2414.8kbits/s speed= 1x elapsed=0:02:00.02 frame= 3620 fps= 30 q=-0.0 size= 35573KiB time=00:02:00.49 bitrate=2418.5kbits/s speed= 1x elapsed=0:02:00.52 frame= 3650 fps= 30 q=-0.0 size= 35582KiB time=00:02:00.94 bitrate=2410.1kbits/s speed=0.999x elapsed=0:02:01.02 frame= 3650 fps= 30 q=-0.0 size= 35782KiB time=00:02:01.49 bitrate=2412.7kbits/s speed= 1x elapsed=0:02:01.52 frame= 3681 fps= 30 q=-0.0 size= 35792KiB time=00:02:02.00 bitrate=2403.2kbits/s speed= 1x elapsed=0:02:02.02 frame= 3681 fps= 30 q=-0.0 size= 35992KiB time=00:02:02.49 bitrate=2406.9kbits/s speed= 1x elapsed=0:02:02.52 frame= 3710 fps= 30 q=-0.0 size= 36002KiB time=00:02:02.99 bitrate=2398.0kbits/s speed= 1x elapsed=0:02:03.02 frame= 3710 fps= 30 q=-0.0 size= 36202KiB time=00:02:03.50 bitrate=2401.3kbits/s speed= 1x elapsed=0:02:03.52 frame= 3741 fps= 30 q=-0.0 size= 36212KiB time=00:02:03.99 bitrate=2392.5kbits/s speed= 1x elapsed=0:02:04.02 frame= 3741 fps= 30 q=-0.0 size= 36413KiB time=00:02:04.48 bitrate=2396.3kbits/s speed= 1x elapsed=0:02:04.52 frame= 3772 fps= 30 q=-0.0 size= 36422KiB time=00:02:04.99 bitrate=2387.1kbits/s speed= 1x elapsed=0:02:05.02 frame= 3772 fps= 30 q=-0.0 size= 36623KiB time=00:02:05.50 bitrate=2390.4kbits/s speed= 1x elapsed=0:02:05.52 frame= 3803 fps= 30 q=-0.0 size= 36632KiB time=00:02:05.99 bitrate=2381.7kbits/s speed= 1x elapsed=0:02:06.02 frame= 3803 fps= 30 q=-0.0 size= 36832KiB time=00:02:06.44 bitrate=2386.2kbits/s speed=0.999x elapsed=0:02:06.52 frame= 3832 fps= 30 q=-0.0 size= 36843KiB time=00:02:07.00 bitrate=2376.5kbits/s speed= 1x elapsed=0:02:07.02 frame= 3833 fps= 30 q=-0.0 size= 37043KiB time=00:02:07.49 bitrate=2380.2kbits/s speed= 1x elapsed=0:02:07.52 frame= 3860 fps= 30 q=-0.0 size= 37053KiB time=00:02:07.95 bitrate=2372.2kbits/s speed= 1x elapsed=0:02:08.02 frame= 3864 fps= 30 q=-0.0 size= 37254KiB time=00:02:08.49 bitrate=2375.1kbits/s speed= 1x elapsed=0:02:08.52 frame= 3893 fps= 30 q=-0.0 size= 37265KiB time=00:02:09.00 bitrate=2366.4kbits/s speed= 1x elapsed=0:02:09.02 frame= 3893 fps= 30 q=-0.0 size= 37465KiB time=00:02:09.49 bitrate=2370.0kbits/s speed= 1x elapsed=0:02:09.52 frame= 3920 fps= 30 q=-0.0 size= 37474KiB time=00:02:09.94 bitrate=2362.4kbits/s speed=0.999x elapsed=0:02:10.02 frame= 3924 fps= 30 q=-0.0 size= 37677KiB time=00:02:10.50 bitrate=2365.1kbits/s speed= 1x elapsed=0:02:10.52 frame= 3949 fps= 30 q=-0.0 size= 37687KiB time=00:02:10.99 bitrate=2356.9kbits/s speed= 1x elapsed=0:02:11.02 frame= 3955 fps= 30 q=-0.0 size= 37888KiB time=00:02:11.50 bitrate=2360.2kbits/s speed= 1x elapsed=0:02:11.52 frame= 3978 fps= 30 q=-0.0 size= 37898KiB time=00:02:11.99 bitrate=2352.1kbits/s speed= 1x elapsed=0:02:12.02 frame= 3986 fps= 30 q=-0.0 size= 38099KiB time=00:02:12.50 bitrate=2355.4kbits/s speed= 1x elapsed=0:02:12.52 frame= 4006 fps= 30 q=-0.0 size= 38108KiB time=00:02:12.95 bitrate=2348.1kbits/s speed=0.999x elapsed=0:02:13.02 frame= 4016 fps= 30 q=-0.0 size= 38311KiB time=00:02:13.44 bitrate=2351.9kbits/s speed=0.999x elapsed=0:02:13.52 frame= 4034 fps= 30 q=-0.0 size= 38320KiB time=00:02:13.89 bitrate=2344.6kbits/s speed=0.999x elapsed=0:02:14.02 frame= 4047 fps= 30 q=-0.0 size= 38526KiB time=00:02:14.50 bitrate=2346.3kbits/s speed= 1x elapsed=0:02:14.52 frame= 4067 fps= 30 q=-0.0 size= 38532KiB time=00:02:14.85 bitrate=2340.8kbits/s speed=0.999x elapsed=0:02:15.02 frame= 4077 fps= 30 q=-0.0 size= 38738KiB time=00:02:15.49 bitrate=2342.0kbits/s speed= 1x elapsed=0:02:15.52 frame= 4091 fps= 30 q=-0.0 size= 38747KiB time=00:02:15.96 bitrate=2334.5kbits/s speed= 1x elapsed=0:02:16.02 frame= 4109 fps= 30 q=-0.0 size= 38950KiB time=00:02:16.49 bitrate=2337.6kbits/s speed= 1x elapsed=0:02:16.52 frame= 4121 fps= 30 q=-0.0 size= 38958KiB time=00:02:16.90 bitrate=2331.2kbits/s speed=0.999x elapsed=0:02:17.02 frame= 4139 fps= 30 q=-0.0 size= 39163KiB time=00:02:17.49 bitrate=2333.3kbits/s speed= 1x elapsed=0:02:17.52 frame= 4149 fps= 30 q=-0.0 size= 39173KiB time=00:02:18.00 bitrate=2325.3kbits/s speed= 1x elapsed=0:02:18.02 frame= 4170 fps= 30 q=-0.0 size= 39377KiB time=00:02:18.50 bitrate=2329.0kbits/s speed= 1x elapsed=0:02:18.52 frame= 4181 fps= 30 q=-0.0 size= 39387KiB time=00:02:18.99 bitrate=2321.4kbits/s speed= 1x elapsed=0:02:19.02 frame= 4199 fps= 30 q=-0.0 size= 39591KiB time=00:02:19.50 bitrate=2324.8kbits/s speed= 1x elapsed=0:02:19.52 frame= 4208 fps= 30 q=-0.0 size= 39600KiB time=00:02:19.99 bitrate=2317.2kbits/s speed= 1x elapsed=0:02:20.02 frame= 4230 fps= 30 q=-0.0 size= 39804KiB time=00:02:20.50 bitrate=2320.7kbits/s speed= 1x elapsed=0:02:20.52 frame= 4241 fps= 30 q=-0.0 size= 39814KiB time=00:02:20.99 bitrate=2313.2kbits/s speed= 1x elapsed=0:02:21.02 frame= 4260 fps= 30 q=-0.0 size= 40019KiB time=00:02:21.51 bitrate=2316.7kbits/s speed= 1x elapsed=0:02:21.52 frame= 4265 fps= 30 q=-0.0 size= 40028KiB time=00:02:22.00 bitrate=2309.2kbits/s speed= 1x elapsed=0:02:22.02 frame= 4292 fps= 30 q=-0.0 size= 40235KiB time=00:02:22.44 bitrate=2313.9kbits/s speed=0.999x elapsed=0:02:22.52 frame= 4295 fps= 30 q=-0.0 size= 40245KiB time=00:02:23.00 bitrate=2305.5kbits/s speed= 1x elapsed=0:02:23.02 frame= 4322 fps= 30 q=-0.0 size= 40450KiB time=00:02:23.49 bitrate=2309.3kbits/s speed= 1x elapsed=0:02:23.52 frame= 4323 fps= 30 q=-0.0 size= 40460KiB time=00:02:24.00 bitrate=2301.7kbits/s speed= 1x elapsed=0:02:24.02 frame= 4353 fps= 30 q=-0.0 size= 40665KiB time=00:02:24.49 bitrate=2305.5kbits/s speed= 1x elapsed=0:02:24.52 frame= 4355 fps= 30 q=-0.0 size= 40674KiB time=00:02:25.00 bitrate=2297.9kbits/s speed= 1x elapsed=0:02:25.02 frame= 4382 fps= 30 q=-0.0 size= 40879KiB time=00:02:25.49 bitrate=2301.6kbits/s speed= 1x elapsed=0:02:25.52 frame= 4382 fps= 30 q=-0.0 size= 40888KiB time=00:02:25.94 bitrate=2295.0kbits/s speed=0.999x elapsed=0:02:26.02 frame= 4413 fps= 30 q=-0.0 size= 41093KiB time=00:02:26.50 bitrate=2297.9kbits/s speed= 1x elapsed=0:02:26.52 frame= 4413 fps= 30 q=-0.0 size= 41103KiB time=00:02:26.99 bitrate=2290.7kbits/s speed= 1x elapsed=0:02:27.02 frame= 4444 fps= 30 q=-0.0 size= 41308KiB time=00:02:27.50 bitrate=2294.2kbits/s speed= 1x elapsed=0:02:27.52 frame= 4444 fps= 30 q=-0.0 size= 41317KiB time=00:02:27.99 bitrate=2287.1kbits/s speed= 1x elapsed=0:02:28.02 frame= 4475 fps= 30 q=-0.0 size= 41523KiB time=00:02:28.50 bitrate=2290.5kbits/s speed= 1x elapsed=0:02:28.52 frame= 4475 fps= 30 q=-0.0 size= 41532KiB time=00:02:28.99 bitrate=2283.5kbits/s speed= 1x elapsed=0:02:29.02 frame= 4505 fps= 30 q=-0.0 size= 41737KiB time=00:02:29.50 bitrate=2286.9kbits/s speed= 1x elapsed=0:02:29.52 frame= 4505 fps= 30 q=-0.0 size= 41746KiB time=00:02:29.99 bitrate=2279.9kbits/s speed= 1x elapsed=0:02:30.02 frame= 4536 fps= 30 q=-0.0 size= 41952KiB time=00:02:30.51 bitrate=2283.4kbits/s speed= 1x elapsed=0:02:30.52 frame= 4536 fps= 30 q=-0.0 size= 41961KiB time=00:02:31.00 bitrate=2276.4kbits/s speed= 1x elapsed=0:02:31.02 frame= 4566 fps= 30 q=-0.0 size= 42166KiB time=00:02:31.49 bitrate=2280.1kbits/s speed= 1x elapsed=0:02:31.52 frame= 4566 fps= 30 q=-0.0 size= 42175KiB time=00:02:32.00 bitrate=2272.9kbits/s speed= 1x elapsed=0:02:32.02 frame= 4596 fps= 30 q=-0.0 size= 42381KiB time=00:02:32.49 bitrate=2276.7kbits/s speed= 1x elapsed=0:02:32.52 frame= 4596 fps= 30 q=-0.0 size= 42391KiB time=00:02:33.01 bitrate=2269.5kbits/s speed= 1x elapsed=0:02:33.02 frame= 4627 fps= 30 q=-0.0 size= 42596KiB time=00:02:33.50 bitrate=2273.2kbits/s speed= 1x elapsed=0:02:33.52 frame= 4627 fps= 30 q=-0.0 size= 42606KiB time=00:02:34.01 bitrate=2266.2kbits/s speed= 1x elapsed=0:02:34.02 frame= 4658 fps= 30 q=-0.0 size= 42810KiB time=00:02:34.50 bitrate=2269.9kbits/s speed= 1x elapsed=0:02:34.52 frame= 4658 fps= 30 q=-0.0 size= 42819KiB time=00:02:34.99 bitrate=2263.2kbits/s speed= 1x elapsed=0:02:35.02 [aost#0:1/aac @ 0x561abc4d5dc0] Error submitting a packet to the muxer: Immediate exit requested +2026-04-10T19:03:15.087486Z INFO cht_client::backends::subprocess: [ffmpeg] Last message repeated 1 times +2026-04-10T19:03:15.087508Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x561abc4ce1c0] Error muxing a packet +2026-04-10T19:03:15.087533Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x561abc4ce1c0] Task finished with error code: -1414092869 (Immediate exit requested) +2026-04-10T19:03:15.087561Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x561abc4ce1c0] Terminating thread with return code -1414092869 (Immediate exit requested) +2026-04-10T19:03:15.127993Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x561abc4ce1c0] Error writing trailer: Immediate exit requested +2026-04-10T19:03:15.128062Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x561abc4ce1c0] Error closing file: Immediate exit requested +2026-04-10T19:03:15.128086Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x561abc4ce1c0] video:41685KiB audio:1280KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.120549% +2026-04-10T19:03:15.128114Z INFO cht_client::backends::subprocess: [ffmpeg] frame= 4658 fps= 30 q=-0.0 Lsize= 43017KiB time=00:02:35.14 bitrate=2271.4kbits/s speed= 1x elapsed=0:02:35.20 +2026-04-10T19:03:15.129775Z INFO cht_client::backends::subprocess: [ffmpeg] [aac @ 0x561abc4d6540] Qavg: 32981.449 +2026-04-10T19:03:15.133942Z INFO cht_client::backends::subprocess: [ffmpeg] Exiting normally, received signal 2. +2026-04-10T19:03:15.140814Z INFO cht_client::backends::subprocess: [ffmpeg] stderr closed +2026-04-10T19:03:15.142481Z INFO cht_client::backends::subprocess: ffmpeg exited cleanly +2026-04-10T19:04:41.884099Z INFO cht_common::logging: Logging to /home/mariano/wdir/cht/logs/client.log +2026-04-10T19:04:41.884138Z INFO cht_client: Backend: Subprocess (default) +2026-04-10T19:04:41.884154Z INFO cht_client: Waiting for server at mcrndeb:4447... +2026-04-10T19:04:41.885797Z INFO cht_client: Connected to mcrndeb:4447 +2026-04-10T19:04:41.885903Z INFO cht_client: Sent session_start +2026-04-10T19:04:41.886046Z INFO cht_client::pipeline: Backend: Subprocess (ffmpeg CLI) +2026-04-10T19:04:41.897256Z INFO cht_client::backends::subprocess: Audio sources — monitor: Some("alsa_output.usb-TASCAM_US-122_MKII_no_serial_number-00.analog-stereo.monitor"), mic: Some("alsa_input.usb-046d_C922_Pro_Stream_Webcam_B4B595AF-02.analog-stereo") +2026-04-10T19:04:41.897333Z INFO cht_client::backends::subprocess: ffmpeg args: ["-init_hw_device", "drm=drm:/dev/dri/card0", "-init_hw_device", "vaapi=va@drm", "-thread_queue_size", "512", "-device", "/dev/dri/card0", "-f", "kmsgrab", "-framerate", "30", "-i", "-", "-f", "pulse", "-thread_queue_size", "1024", "-i", "alsa_output.usb-TASCAM_US-122_MKII_no_serial_number-00.analog-stereo.monitor", "-f", "pulse", "-thread_queue_size", "1024", "-i", "alsa_input.usb-046d_C922_Pro_Stream_Webcam_B4B595AF-02.analog-stereo", "-filter_complex", "[1:a][2:a]amix=inputs=2:duration=longest[aout]", "-map", "0:v", "-map", "[aout]", "-vf", "hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12,fps=30", "-c:v", "h264_vaapi", "-qp", "20", "-g", "30", "-bf", "0", "-c:a", "aac", "-b:a", "128k", "-flush_packets", "1", "-fflags", "nobuffer", "-f", "nut", "pipe:1", "-hide_banner"] +2026-04-10T19:04:41.897730Z INFO cht_client::backends::subprocess: ffmpeg subprocess pid=3316798 +2026-04-10T19:04:41.972492Z INFO cht_client::backends::subprocess: [ffmpeg] There are 2 hardware devices. device va of type vaapi is picked for filters by default. Set hardware device explicitly with the filter_hw_device option if device va is not usable for filters. +2026-04-10T19:04:41.972670Z INFO cht_client::backends::subprocess: [ffmpeg] [in#0 @ 0x5576f3469340] Using plane 57 to locate framebuffers. +2026-04-10T19:04:41.972692Z INFO cht_client::backends::subprocess: [ffmpeg] [in#0 @ 0x5576f3469340] Template framebuffer is 117: 1920x1080 format 30335258 modifier 0 flags 0. +2026-04-10T19:04:42.640874Z INFO cht_client::backends::subprocess: [ffmpeg] Input #0, kmsgrab, from 'fd:': +2026-04-10T19:04:42.640943Z INFO cht_client::backends::subprocess: [ffmpeg] Duration: N/A, start: 1775847881.972716, bitrate: N/A +2026-04-10T19:04:42.640980Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #0:0: Video: wrapped_avframe, drm_prime, 1920x1080, 29.92 tbr, 1000k tbn, start 1775847881.972716 +2026-04-10T19:04:42.706511Z INFO cht_client::backends::subprocess: [ffmpeg] [aist#1:0/pcm_s16le @ 0x5576f347dd80] Guessed Channel Layout: stereo +2026-04-10T19:04:42.706569Z INFO cht_client::backends::subprocess: [ffmpeg] Input #1, pulse, from 'alsa_output.usb-TASCAM_US-122_MKII_no_serial_number-00.analog-stereo.monitor': +2026-04-10T19:04:42.706598Z INFO cht_client::backends::subprocess: [ffmpeg] Duration: N/A, start: 1775847882.644872, bitrate: 1536 kb/s +2026-04-10T19:04:42.706620Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s, start 1775847882.644872 +2026-04-10T19:04:42.993071Z INFO cht_client::backends::subprocess: [ffmpeg] [aist#2:0/pcm_s16le @ 0x5576f3487cc0] Guessed Channel Layout: stereo +2026-04-10T19:04:42.993151Z INFO cht_client::backends::subprocess: [ffmpeg] Input #2, pulse, from 'alsa_input.usb-046d_C922_Pro_Stream_Webcam_B4B595AF-02.analog-stereo': +2026-04-10T19:04:42.993176Z INFO cht_client::backends::subprocess: [ffmpeg] Duration: N/A, start: 1775847882.872073, bitrate: 1536 kb/s +2026-04-10T19:04:42.993191Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #2:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s, start 1775847882.872073 +2026-04-10T19:04:42.993220Z INFO cht_client::backends::subprocess: [ffmpeg] There are 2 hardware devices. device va of type vaapi is picked for filters by default. Set hardware device explicitly with the filter_hw_device option if device va is not usable for filters. +2026-04-10T19:04:42.993824Z INFO cht_client::backends::subprocess: [ffmpeg] Stream mapping: +2026-04-10T19:04:42.993849Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #1:0 (pcm_s16le) -> amix +2026-04-10T19:04:42.993874Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #2:0 (pcm_s16le) -> amix +2026-04-10T19:04:42.993897Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #0:0 -> #0:0 (wrapped_avframe (native) -> h264 (h264_vaapi)) +2026-04-10T19:04:42.993918Z INFO cht_client::backends::subprocess: [ffmpeg] amix:default -> Stream #0:1 (aac) +2026-04-10T19:04:42.994239Z INFO cht_client::backends::subprocess: [ffmpeg] There are 2 hardware devices. device va of type vaapi is picked for filters by default. Set hardware device explicitly with the filter_hw_device option if device va is not usable for filters. +2026-04-10T19:04:43.008562Z INFO cht_client::backends::subprocess: [ffmpeg] Last message repeated 1 times +2026-04-10T19:04:43.008623Z INFO cht_client::backends::subprocess: [ffmpeg] Output #0, nut, to 'pipe:1': +2026-04-10T19:04:43.008646Z INFO cht_client::backends::subprocess: [ffmpeg] Metadata: +2026-04-10T19:04:43.008670Z INFO cht_client::backends::subprocess: [ffmpeg] encoder : Lavf62.12.100 +2026-04-10T19:04:43.008696Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #0:0: Video: h264 (High) (H264 / 0x34363248), vaapi(tv, progressive), 1920x1080, q=2-31, 30 fps, 61440 tbn +2026-04-10T19:04:43.008727Z INFO cht_client::backends::subprocess: [ffmpeg] Metadata: +2026-04-10T19:04:43.008767Z INFO cht_client::backends::subprocess: [ffmpeg] encoder : Lavc62.28.100 h264_vaapi +2026-04-10T19:04:43.008796Z INFO cht_client::backends::subprocess: [ffmpeg] Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz, stereo, fltp, 128 kb/s +2026-04-10T19:04:43.008825Z INFO cht_client::backends::subprocess: [ffmpeg] Metadata: +2026-04-10T19:04:43.008846Z INFO cht_client::backends::subprocess: [ffmpeg] encoder : Lavc62.28.100 aac +2026-04-10T19:04:43.946757Z INFO cht_client::backends::subprocess: Demux: video_idx=0 tb=1/61440, audio_idx=1 tb=1/48000 +2026-04-10T19:04:43.946907Z INFO cht_client::backends::subprocess: Subprocess: 1 video, 1 audio packets +2026-04-10T19:04:43.947572Z INFO cht_client: Sent 1 video, 1 audio packets +2026-04-10T19:04:53.035814Z INFO cht_client::backends::subprocess: Subprocess: 301 video, 470 audio packets +2026-04-10T19:04:53.036104Z INFO cht_client: Sent 301 video, 470 audio packets +2026-04-10T19:05:03.062795Z INFO cht_client::backends::subprocess: Subprocess: 601 video, 939 audio packets +2026-04-10T19:05:03.063087Z INFO cht_client: Sent 601 video, 939 audio packets +2026-04-10T19:05:13.047543Z INFO cht_client::backends::subprocess: Subprocess: 901 video, 1408 audio packets +2026-04-10T19:05:13.047811Z INFO cht_client: Sent 901 video, 1408 audio packets +2026-04-10T19:05:23.031866Z INFO cht_client::backends::subprocess: Subprocess: 1201 video, 1876 audio packets +2026-04-10T19:05:23.032223Z INFO cht_client: Sent 1201 video, 1876 audio packets +2026-04-10T19:05:33.059100Z INFO cht_client::backends::subprocess: Subprocess: 1501 video, 2345 audio packets +2026-04-10T19:05:33.059373Z INFO cht_client: Sent 1501 video, 2345 audio packets +2026-04-10T19:05:43.043975Z INFO cht_client::backends::subprocess: Subprocess: 1801 video, 2814 audio packets +2026-04-10T19:05:43.044286Z INFO cht_client: Sent 1801 video, 2814 audio packets +2026-04-10T19:05:53.028007Z INFO cht_client::backends::subprocess: Subprocess: 2101 video, 3282 audio packets +2026-04-10T19:05:53.028311Z INFO cht_client: Sent 2101 video, 3282 audio packets +2026-04-10T19:06:03.054972Z INFO cht_client::backends::subprocess: Subprocess: 2401 video, 3751 audio packets +2026-04-10T19:06:03.055267Z INFO cht_client: Sent 2401 video, 3751 audio packets +2026-04-10T19:06:13.039446Z INFO cht_client::backends::subprocess: Subprocess: 2701 video, 4220 audio packets +2026-04-10T19:06:13.039768Z INFO cht_client: Sent 2701 video, 4220 audio packets +2026-04-10T19:06:23.066875Z INFO cht_client::backends::subprocess: Subprocess: 3001 video, 4689 audio packets +2026-04-10T19:06:23.067136Z INFO cht_client: Sent 3001 video, 4689 audio packets +2026-04-10T19:06:33.051748Z INFO cht_client::backends::subprocess: Subprocess: 3301 video, 5157 audio packets +2026-04-10T19:06:33.052020Z INFO cht_client: Sent 3301 video, 5157 audio packets +2026-04-10T19:06:43.041511Z INFO cht_client::backends::subprocess: Subprocess: 3601 video, 5626 audio packets +2026-04-10T19:06:43.041791Z INFO cht_client: Sent 3601 video, 5626 audio packets +2026-04-10T19:06:53.073979Z INFO cht_client::backends::subprocess: Subprocess: 3901 video, 6095 audio packets +2026-04-10T19:06:53.074248Z INFO cht_client: Sent 3901 video, 6095 audio packets +2026-04-10T19:07:03.047092Z INFO cht_client::backends::subprocess: Subprocess: 4201 video, 6564 audio packets +2026-04-10T19:07:03.047239Z INFO cht_client: Sent 4201 video, 6564 audio packets +2026-04-10T19:07:13.031417Z INFO cht_client::backends::subprocess: Subprocess: 4501 video, 7032 audio packets +2026-04-10T19:07:13.031683Z INFO cht_client: Sent 4501 video, 7032 audio packets +2026-04-10T19:07:23.058540Z INFO cht_client::backends::subprocess: Subprocess: 4801 video, 7501 audio packets +2026-04-10T19:07:23.058813Z INFO cht_client: Sent 4801 video, 7501 audio packets +2026-04-10T19:07:33.042858Z INFO cht_client::backends::subprocess: Subprocess: 5101 video, 7970 audio packets +2026-04-10T19:07:33.043204Z INFO cht_client: Sent 5101 video, 7970 audio packets +2026-04-10T19:07:43.070333Z INFO cht_client::backends::subprocess: Subprocess: 5401 video, 8439 audio packets +2026-04-10T19:07:43.070540Z INFO cht_client: Sent 5401 video, 8439 audio packets +2026-04-10T19:07:53.054479Z INFO cht_client::backends::subprocess: Subprocess: 5701 video, 8907 audio packets +2026-04-10T19:07:53.054767Z INFO cht_client: Sent 5701 video, 8907 audio packets +2026-04-10T19:08:03.038891Z INFO cht_client::backends::subprocess: Subprocess: 6001 video, 9376 audio packets +2026-04-10T19:08:03.039194Z INFO cht_client: Sent 6001 video, 9376 audio packets +2026-04-10T19:08:13.065868Z INFO cht_client::backends::subprocess: Subprocess: 6301 video, 9845 audio packets +2026-04-10T19:08:13.066145Z INFO cht_client: Sent 6301 video, 9845 audio packets +2026-04-10T19:08:23.053476Z INFO cht_client::backends::subprocess: Subprocess: 6601 video, 10313 audio packets +2026-04-10T19:08:23.053725Z INFO cht_client: Sent 6601 video, 10313 audio packets +2026-04-10T19:08:33.034692Z INFO cht_client::backends::subprocess: Subprocess: 6901 video, 10782 audio packets +2026-04-10T19:08:33.034963Z INFO cht_client: Sent 6901 video, 10782 audio packets +2026-04-10T19:08:43.061833Z INFO cht_client::backends::subprocess: Subprocess: 7201 video, 11251 audio packets +2026-04-10T19:08:43.062146Z INFO cht_client: Sent 7201 video, 11251 audio packets +2026-04-10T19:08:53.046435Z INFO cht_client::backends::subprocess: Subprocess: 7501 video, 11720 audio packets +2026-04-10T19:08:53.046773Z INFO cht_client: Sent 7501 video, 11720 audio packets +2026-04-10T19:09:03.073500Z INFO cht_client::backends::subprocess: Subprocess: 7801 video, 12188 audio packets +2026-04-10T19:09:03.073740Z INFO cht_client: Sent 7801 video, 12188 audio packets +2026-04-10T19:09:13.061168Z INFO cht_client::backends::subprocess: Subprocess: 8101 video, 12657 audio packets +2026-04-10T19:09:13.061439Z INFO cht_client: Sent 8101 video, 12657 audio packets +2026-04-10T19:09:23.044003Z INFO cht_client::backends::subprocess: Subprocess: 8401 video, 13126 audio packets +2026-04-10T19:09:23.044308Z INFO cht_client: Sent 8401 video, 13126 audio packets +2026-04-10T19:09:33.069413Z INFO cht_client::backends::subprocess: Subprocess: 8701 video, 13595 audio packets +2026-04-10T19:09:33.069655Z INFO cht_client: Sent 8701 video, 13595 audio packets +2026-04-10T19:09:43.058829Z INFO cht_client::backends::subprocess: Subprocess: 9001 video, 14063 audio packets +2026-04-10T19:09:43.059071Z INFO cht_client: Sent 9001 video, 14063 audio packets +2026-04-10T19:09:53.049021Z INFO cht_client::backends::subprocess: Subprocess: 9301 video, 14532 audio packets +2026-04-10T19:09:53.049226Z INFO cht_client: Sent 9301 video, 14532 audio packets +2026-04-10T19:10:03.080715Z INFO cht_client::backends::subprocess: Subprocess: 9601 video, 15001 audio packets +2026-04-10T19:10:03.081067Z INFO cht_client: Sent 9601 video, 15001 audio packets +2026-04-10T19:10:13.010056Z INFO cht_client::backends::subprocess: Subprocess: 9901 video, 15469 audio packets +2026-04-10T19:10:13.010215Z INFO cht_client: Sent 9901 video, 15469 audio packets +2026-04-10T19:10:23.078854Z INFO cht_client::backends::subprocess: Subprocess: 10201 video, 15938 audio packets +2026-04-10T19:10:23.079125Z INFO cht_client: Sent 10201 video, 15938 audio packets +2026-04-10T19:10:33.061338Z INFO cht_client::backends::subprocess: Subprocess: 10501 video, 16407 audio packets +2026-04-10T19:10:33.061592Z INFO cht_client: Sent 10501 video, 16407 audio packets +2026-04-10T19:10:43.045774Z INFO cht_client::backends::subprocess: Subprocess: 10801 video, 16876 audio packets +2026-04-10T19:10:43.046042Z INFO cht_client: Sent 10801 video, 16876 audio packets +2026-04-10T19:10:53.030987Z INFO cht_client::backends::subprocess: Subprocess: 11101 video, 17344 audio packets +2026-04-10T19:10:53.031130Z INFO cht_client: Sent 11101 video, 17344 audio packets +2026-04-10T19:11:03.057322Z INFO cht_client::backends::subprocess: Subprocess: 11401 video, 17813 audio packets +2026-04-10T19:11:03.057601Z INFO cht_client: Sent 11401 video, 17813 audio packets +2026-04-10T19:11:09.948127Z INFO cht_client: Ctrl+C received, stopping... +2026-04-10T19:11:09.948204Z INFO cht_client: Stopping pipeline... +2026-04-10T19:11:09.949519Z INFO cht_client::backends::subprocess: Stop watcher: sent SIGINT to ffmpeg pid=3316798 +2026-04-10T19:11:09.983103Z INFO cht_client::backends::subprocess: [ffmpeg] frame= 24 fps=0.0 q=-0.0 size= 848KiB time=00:00:00.49 bitrate=14069.5kbits/s speed=0.987x elapsed=0:00:00.50 frame= 36 fps= 36 q=-0.0 size= 864KiB time=00:00:01.01 bitrate=6973.7kbits/s speed=1.01x elapsed=0:00:01.00 frame= 62 fps= 41 q=-0.0 size= 1236KiB time=00:00:01.46 bitrate=6906.8kbits/s speed=0.977x elapsed=0:00:01.50 frame= 62 fps= 31 q=-0.0 size= 1252KiB time=00:00:01.95 bitrate=5237.8kbits/s speed=0.979x elapsed=0:00:02.00 frame= 90 fps= 36 q=-0.0 size= 1552KiB time=00:00:02.51 bitrate=5062.5kbits/s speed= 1x elapsed=0:00:02.50 frame= 97 fps= 32 q=-0.0 size= 1567KiB time=00:00:02.95 bitrate=4340.0kbits/s speed=0.986x elapsed=0:00:03.00 frame= 117 fps= 33 q=-0.0 size= 1864KiB time=00:00:03.46 bitrate=4403.6kbits/s speed=0.991x elapsed=0:00:03.50 frame= 132 fps= 33 q=-0.0 size= 1881KiB time=00:00:03.99 bitrate=3852.7kbits/s speed= 1x elapsed=0:00:04.00 frame= 144 fps= 32 q=-0.0 size= 2180KiB time=00:00:04.51 bitrate=3959.0kbits/s speed= 1x elapsed=0:00:04.50 frame= 168 fps= 34 q=-0.0 size= 2195KiB time=00:00:04.95 bitrate=3626.7kbits/s speed=0.992x elapsed=0:00:05.00 frame= 171 fps= 31 q=-0.0 size= 2492KiB time=00:00:05.44 bitrate=3747.0kbits/s speed=0.99x elapsed=0:00:05.50 frame= 199 fps= 33 q=-0.0 size= 2510KiB time=00:00:06.00 bitrate=3426.2kbits/s speed= 1x elapsed=0:00:06.00 frame= 199 fps= 31 q=-0.0 size= 2808KiB time=00:00:06.51 bitrate=3532.6kbits/s speed= 1x elapsed=0:00:06.50 frame= 226 fps= 32 q=-0.0 size= 2822KiB time=00:00:06.95 bitrate=3322.1kbits/s speed=0.994x elapsed=0:00:07.00 frame= 231 fps= 31 q=-0.0 size= 3121KiB time=00:00:07.49 bitrate=3412.6kbits/s speed=0.999x elapsed=0:00:07.50 frame= 253 fps= 32 q=-0.0 size= 3139KiB time=00:00:08.00 bitrate=3213.1kbits/s speed= 1x elapsed=0:00:08.00 frame= 267 fps= 31 q=-0.0 size= 3435KiB time=00:00:08.45 bitrate=3329.9kbits/s speed=0.994x elapsed=0:00:08.50 frame= 280 fps= 31 q=-0.0 size= 3536KiB time=00:00:08.94 bitrate=3239.3kbits/s speed=0.993x elapsed=0:00:09.00 frame= 302 fps= 32 q=-0.0 size= 3815KiB time=00:00:09.49 bitrate=3290.9kbits/s speed= 1x elapsed=0:00:09.50 frame= 307 fps= 31 q=-0.0 size= 3831KiB time=00:00:10.00 bitrate=3135.5kbits/s speed= 1x elapsed=0:00:10.00 frame= 334 fps= 32 q=-0.0 size= 4137KiB time=00:00:10.45 bitrate=3240.9kbits/s speed=0.996x elapsed=0:00:10.50 frame= 335 fps= 30 q=-0.0 size= 4153KiB time=00:00:10.98 bitrate=3095.8kbits/s speed=0.999x elapsed=0:00:11.00 frame= 363 fps= 32 q=-0.0 size= 4425KiB time=00:00:11.50 bitrate=3151.5kbits/s speed= 1x elapsed=0:00:11.50 frame= 363 fps= 30 q=-0.0 size= 4439KiB time=00:00:11.95 bitrate=3042.9kbits/s speed=0.996x elapsed=0:00:12.00 frame= 391 fps= 31 q=-0.0 size= 4893KiB time=00:00:12.44 bitrate=3222.0kbits/s speed=0.995x elapsed=0:00:12.50 frame= 396 fps= 30 q=-0.0 size= 4911KiB time=00:00:12.95 bitrate=3105.4kbits/s speed=0.996x elapsed=0:00:13.00 frame= 418 fps= 31 q=-0.0 size= 5178KiB time=00:00:13.50 bitrate=3140.0kbits/s speed= 1x elapsed=0:00:13.50 frame= 432 fps= 31 q=-0.0 size= 5194KiB time=00:00:13.95 bitrate=3048.8kbits/s speed=0.997x elapsed=0:00:14.00 frame= 445 fps= 31 q=-0.0 size= 5420KiB time=00:00:14.44 bitrate=3073.6kbits/s speed=0.996x elapsed=0:00:14.50 frame= 467 fps= 31 q=-0.0 size= 5540KiB time=00:00:15.00 bitrate=3025.7kbits/s speed= 1x elapsed=0:00:15.00 frame= 472 fps= 30 q=-0.0 size= 5746KiB time=00:00:15.44 bitrate=3046.6kbits/s speed=0.997x elapsed=0:00:15.50 frame= 499 fps= 31 q=-0.0 size= 5834KiB time=00:00:15.96 bitrate=2994.4kbits/s speed=0.997x elapsed=0:00:16.00 frame= 499 fps= 30 q=-0.0 size= 6041KiB time=00:00:16.49 bitrate=3000.5kbits/s speed=0.999x elapsed=0:00:16.50 frame= 527 fps= 31 q=-0.0 size= 6161KiB time=00:00:17.00 bitrate=2967.9kbits/s speed= 1x elapsed=0:00:17.00 frame= 527 fps= 30 q=-0.0 size= 6375KiB time=00:00:17.45 bitrate=2991.9kbits/s speed=0.997x elapsed=0:00:17.50 frame= 555 fps= 31 q=-0.0 size= 6445KiB time=00:00:17.94 bitrate=2942.3kbits/s speed=0.997x elapsed=0:00:18.00 frame= 560 fps= 30 q=-0.0 size= 6661KiB time=00:00:18.49 bitrate=2949.6kbits/s speed= 1x elapsed=0:00:18.50 frame= 583 fps= 31 q=-0.0 size= 6729KiB time=00:00:18.99 bitrate=2902.7kbits/s speed=0.999x elapsed=0:00:19.00 frame= 596 fps= 31 q=-0.0 size= 6944KiB time=00:00:19.45 bitrate=2923.1kbits/s speed=0.998x elapsed=0:00:19.50 frame= 610 fps= 30 q=-0.0 size= 7031KiB time=00:00:19.99 bitrate=2880.6kbits/s speed= 1x elapsed=0:00:20.00 frame= 632 fps= 31 q=-0.0 size= 7314KiB time=00:00:20.50 bitrate=2922.0kbits/s speed= 1x elapsed=0:00:20.50 frame= 637 fps= 30 q=-0.0 size= 7335KiB time=00:00:20.95 bitrate=2867.7kbits/s speed=0.998x elapsed=0:00:21.00 frame= 664 fps= 31 q=-0.0 size= 7622KiB time=00:00:21.44 bitrate=2912.1kbits/s speed=0.997x elapsed=0:00:21.50 frame= 664 fps= 30 q=-0.0 size= 7646KiB time=00:00:21.99 bitrate=2847.1kbits/s speed= 1x elapsed=0:00:22.00 frame= 691 fps= 31 q=-0.0 size= 7908KiB time=00:00:22.51 bitrate=2877.9kbits/s speed= 1x elapsed=0:00:22.50 frame= 694 fps= 30 q=-0.0 size= 7930KiB time=00:00:22.95 bitrate=2829.4kbits/s speed=0.998x elapsed=0:00:23.00 frame= 719 fps= 31 q=-0.0 size= 8203KiB time=00:00:23.49 bitrate=2860.3kbits/s speed= 1x elapsed=0:00:23.50 frame= 727 fps= 30 q=-0.0 size= 8225KiB time=00:00:23.96 bitrate=2812.1kbits/s speed=0.998x elapsed=0:00:24.00 frame= 747 fps= 30 q=-0.0 size= 8484KiB time=00:00:24.45 bitrate=2842.2kbits/s speed=0.998x elapsed=0:00:24.50 frame= 760 fps= 30 q=-0.0 size= 8507KiB time=00:00:24.94 bitrate=2793.9kbits/s speed=0.998x elapsed=0:00:25.00 frame= 775 fps= 30 q=-0.0 size= 8798KiB time=00:00:25.49 bitrate=2826.6kbits/s speed= 1x elapsed=0:00:25.50 frame= 796 fps= 31 q=-0.0 size= 8886KiB time=00:00:25.94 bitrate=2805.8kbits/s speed=0.998x elapsed=0:00:26.00 frame= 802 fps= 30 q=-0.0 size= 9101KiB time=00:00:26.45 bitrate=2817.9kbits/s speed=0.998x elapsed=0:00:26.50 frame= 829 fps= 31 q=-0.0 size= 9203KiB time=00:00:26.99 bitrate=2793.2kbits/s speed=0.999x elapsed=0:00:27.00 frame= 829 fps= 30 q=-0.0 size= 9410KiB time=00:00:27.50 bitrate=2802.8kbits/s speed= 1x elapsed=0:00:27.50 frame= 856 fps= 31 q=-0.0 size= 9479KiB time=00:00:27.97 bitrate=2776.2kbits/s speed=0.999x elapsed=0:00:28.00 frame= 862 fps= 30 q=-0.0 size= 9686KiB time=00:00:28.44 bitrate=2789.8kbits/s speed=0.998x elapsed=0:00:28.50 frame= 883 fps= 30 q=-0.0 size= 9762KiB time=00:00:28.99 bitrate=2757.9kbits/s speed= 1x elapsed=0:00:29.00 frame= 894 fps= 30 q=-0.0 size= 9968KiB time=00:00:29.44 bitrate=2773.5kbits/s speed=0.998x elapsed=0:00:29.50 frame= 911 fps= 30 q=-0.0 size= 10042KiB time=00:00:29.95 bitrate=2746.2kbits/s speed=0.998x elapsed=0:00:30.00 frame= 927 fps= 30 q=-0.0 size= 10250KiB time=00:00:30.44 bitrate=2758.1kbits/s speed=0.998x elapsed=0:00:30.50 frame= 939 fps= 30 q=-0.0 size= 10323KiB time=00:00:31.00 bitrate=2727.8kbits/s speed= 1x elapsed=0:00:31.00 frame= 960 fps= 30 q=-0.0 size= 10598KiB time=00:00:31.44 bitrate=2760.5kbits/s speed=0.998x elapsed=0:00:31.50 frame= 967 fps= 30 q=-0.0 size= 10620KiB time=00:00:31.96 bitrate=2722.1kbits/s speed=0.999x elapsed=0:00:32.00 frame= 994 fps= 31 q=-0.0 size= 10896KiB time=00:00:32.49 bitrate=2747.1kbits/s speed= 1x elapsed=0:00:32.50 frame= 994 fps= 30 q=-0.0 size= 10918KiB time=00:00:33.00 bitrate=2709.7kbits/s speed= 1x elapsed=0:00:33.00 frame= 1021 fps= 30 q=-0.0 size= 11202KiB time=00:00:33.45 bitrate=2742.9kbits/s speed=0.998x elapsed=0:00:33.50 frame= 1027 fps= 30 q=-0.0 size= 11225KiB time=00:00:33.94 bitrate=2708.8kbits/s speed=0.998x elapsed=0:00:34.00 frame= 1048 fps= 30 q=-0.0 size= 11487KiB time=00:00:34.50 bitrate=2727.4kbits/s speed= 1x elapsed=0:00:34.50 frame= 1063 fps= 30 q=-0.0 size= 11508KiB time=00:00:34.94 bitrate=2697.4kbits/s speed=0.998x elapsed=0:00:35.00 frame= 1075 fps= 30 q=-0.0 size= 11718KiB time=00:00:35.45 bitrate=2707.2kbits/s speed=0.999x elapsed=0:00:35.50 frame= 1095 fps= 30 q=-0.0 size= 11812KiB time=00:00:35.99 bitrate=2688.4kbits/s speed= 1x elapsed=0:00:36.00 frame= 1103 fps= 30 q=-0.0 size= 11998KiB time=00:00:36.50 bitrate=2692.5kbits/s speed= 1x elapsed=0:00:36.50 frame= 1128 fps= 30 q=-0.0 size= 12104KiB time=00:00:36.93 bitrate=2684.8kbits/s speed=0.998x elapsed=0:00:37.00 frame= 1131 fps= 30 q=-0.0 size= 12304KiB time=00:00:37.44 bitrate=2691.8kbits/s speed=0.998x elapsed=0:00:37.50 frame= 1159 fps= 30 q=-0.0 size= 12390KiB time=00:00:37.99 bitrate=2671.1kbits/s speed= 1x elapsed=0:00:38.00 frame= 1159 fps= 30 q=-0.0 size= 12593KiB time=00:00:38.51 bitrate=2678.8kbits/s speed= 1x elapsed=0:00:38.50 frame= 1186 fps= 30 q=-0.0 size= 12667KiB time=00:00:38.95 bitrate=2663.5kbits/s speed=0.999x elapsed=0:00:39.00 frame= 1192 fps= 30 q=-0.0 size= 12872KiB time=00:00:39.49 bitrate=2670.0kbits/s speed= 1x elapsed=0:00:39.50 frame= 1213 fps= 30 q=-0.0 size= 12953KiB time=00:00:40.00 bitrate=2652.6kbits/s speed= 1x elapsed=0:00:40.00 frame= 1227 fps= 30 q=-0.0 size= 13149KiB time=00:00:40.45 bitrate=2662.7kbits/s speed=0.999x elapsed=0:00:40.50 frame= 1240 fps= 30 q=-0.0 size= 13243KiB time=00:00:40.94 bitrate=2649.7kbits/s speed=0.998x elapsed=0:00:41.00 frame= 1263 fps= 30 q=-0.0 size= 13506KiB time=00:00:41.49 bitrate=2666.2kbits/s speed= 1x elapsed=0:00:41.50 frame= 1267 fps= 30 q=-0.0 size= 13529KiB time=00:00:42.01 bitrate=2638.0kbits/s speed= 1x elapsed=0:00:42.00 frame= 1295 fps= 30 q=-0.0 size= 13785KiB time=00:00:42.45 bitrate=2659.7kbits/s speed=0.999x elapsed=0:00:42.50 frame= 1295 fps= 30 q=-0.0 size= 13807KiB time=00:00:42.99 bitrate=2630.9kbits/s speed= 1x elapsed=0:00:43.00 frame= 1323 fps= 30 q=-0.0 size= 14059KiB time=00:00:43.50 bitrate=2647.5kbits/s speed= 1x elapsed=0:00:43.50 frame= 1323 fps= 30 q=-0.0 size= 14082KiB time=00:00:43.99 bitrate=2622.2kbits/s speed= 1x elapsed=0:00:44.00 frame= 1351 fps= 30 q=-0.0 size= 14334KiB time=00:00:44.44 bitrate=2642.2kbits/s speed=0.999x elapsed=0:00:44.50 frame= 1356 fps= 30 q=-0.0 size= 14358KiB time=00:00:44.95 bitrate=2616.4kbits/s speed=0.999x elapsed=0:00:45.00 frame= 1378 fps= 30 q=-0.0 size= 14610KiB time=00:00:45.50 bitrate=2629.9kbits/s speed= 1x elapsed=0:00:45.50 frame= 1392 fps= 30 q=-0.0 size= 14632KiB time=00:00:45.95 bitrate=2608.2kbits/s speed=0.999x elapsed=0:00:46.00 frame= 1405 fps= 30 q=-0.0 size= 14826KiB time=00:00:46.44 bitrate=2614.9kbits/s speed=0.999x elapsed=0:00:46.50 frame= 1428 fps= 30 q=-0.0 size= 14912KiB time=00:00:47.00 bitrate=2599.0kbits/s speed= 1x elapsed=0:00:47.00 frame= 1432 fps= 30 q=-0.0 size= 15106KiB time=00:00:47.49 bitrate=2605.5kbits/s speed= 1x elapsed=0:00:47.50 frame= 1459 fps= 30 q=-0.0 size= 15193KiB time=00:00:47.96 bitrate=2595.0kbits/s speed=0.999x elapsed=0:00:48.00 frame= 1459 fps= 30 q=-0.0 size= 15385KiB time=00:00:48.49 bitrate=2598.9kbits/s speed= 1x elapsed=0:00:48.50 frame= 1487 fps= 30 q=-0.0 size= 15480KiB time=00:00:49.00 bitrate=2587.6kbits/s speed= 1x elapsed=0:00:49.00 frame= 1487 fps= 30 q=-0.0 size= 15672KiB time=00:00:49.45 bitrate=2596.0kbits/s speed=0.999x elapsed=0:00:49.50 frame= 1515 fps= 30 q=-0.0 size= 15731KiB time=00:00:49.94 bitrate=2580.2kbits/s speed=0.999x elapsed=0:00:50.00 frame= 1520 fps= 30 q=-0.0 size= 15929KiB time=00:00:50.45 bitrate=2586.1kbits/s speed=0.999x elapsed=0:00:50.50 frame= 1543 fps= 30 q=-0.0 size= 16019KiB time=00:00:50.99 bitrate=2573.5kbits/s speed= 1x elapsed=0:00:51.00 frame= 1557 fps= 30 q=-0.0 size= 16220KiB time=00:00:51.46 bitrate=2582.0kbits/s speed=0.999x elapsed=0:00:51.50 frame= 1570 fps= 30 q=-0.0 size= 16304KiB time=00:00:51.99 bitrate=2568.8kbits/s speed= 1x elapsed=0:00:52.00 frame= 1592 fps= 30 q=-0.0 size= 16549KiB time=00:00:52.46 bitrate=2584.0kbits/s speed=0.999x elapsed=0:00:52.50 frame= 1597 fps= 30 q=-0.0 size= 16576KiB time=00:00:52.97 bitrate=2563.3kbits/s speed=0.999x elapsed=0:00:53.00 frame= 1618 fps= 30 q=-0.0 size= 16877KiB time=00:00:53.44 bitrate=2586.8kbits/s speed=0.999x elapsed=0:00:53.50 frame= 1624 fps= 30 q=-0.0 size= 16894KiB time=00:00:54.00 bitrate=2562.9kbits/s speed= 1x elapsed=0:00:54.00 frame= 1651 fps= 30 q=-0.0 size= 17161KiB time=00:00:54.51 bitrate=2578.9kbits/s speed= 1x elapsed=0:00:54.50 frame= 1654 fps= 30 q=-0.0 size= 17176KiB time=00:00:54.95 bitrate=2560.2kbits/s speed=0.999x elapsed=0:00:55.00 frame= 1679 fps= 30 q=-0.0 size= 17437KiB time=00:00:55.49 bitrate=2574.1kbits/s speed= 1x elapsed=0:00:55.50 frame= 1688 fps= 30 q=-0.0 size= 17455KiB time=00:00:56.00 bitrate=2553.1kbits/s speed= 1x elapsed=0:00:56.00 frame= 1707 fps= 30 q=-0.0 size= 17711KiB time=00:00:56.49 bitrate=2568.1kbits/s speed= 1x elapsed=0:00:56.50 frame= 1720 fps= 30 q=-0.0 size= 17728KiB time=00:00:56.94 bitrate=2550.3kbits/s speed=0.999x elapsed=0:00:57.00 frame= 1735 fps= 30 q=-0.0 size= 17967KiB time=00:00:57.49 bitrate=2559.8kbits/s speed= 1x elapsed=0:00:57.50 frame= 1757 fps= 30 q=-0.0 size= 18053KiB time=00:00:57.94 bitrate=2552.2kbits/s speed=0.999x elapsed=0:00:58.00 frame= 1762 fps= 30 q=-0.0 size= 18253KiB time=00:00:58.45 bitrate=2557.8kbits/s speed=0.999x elapsed=0:00:58.51 frame= 1789 fps= 30 q=-0.0 size= 18369KiB time=00:00:58.99 bitrate=2550.8kbits/s speed= 1x elapsed=0:00:59.01 frame= 1789 fps= 30 q=-0.0 size= 18561KiB time=00:00:59.50 bitrate=2555.3kbits/s speed= 1x elapsed=0:00:59.51 frame= 1816 fps= 30 q=-0.0 size= 18700KiB time=00:00:59.99 bitrate=2553.3kbits/s speed= 1x elapsed=0:01:00.01 frame= 1823 fps= 30 q=-0.0 size= 18892KiB time=00:01:00.44 bitrate=2560.5kbits/s speed=0.999x elapsed=0:01:00.51 frame= 1843 fps= 30 q=-0.0 size= 18986KiB time=00:01:00.99 bitrate=2549.8kbits/s speed= 1x elapsed=0:01:01.01 frame= 1854 fps= 30 q=-0.0 size= 19179KiB time=00:01:01.50 bitrate=2554.3kbits/s speed= 1x elapsed=0:01:01.51 frame= 1871 fps= 30 q=-0.0 size= 19272KiB time=00:01:01.95 bitrate=2548.2kbits/s speed=0.999x elapsed=0:01:02.01 frame= 1887 fps= 30 q=-0.0 size= 19468KiB time=00:01:02.44 bitrate=2553.8kbits/s speed=0.999x elapsed=0:01:02.51 frame= 1899 fps= 30 q=-0.0 size= 19553KiB time=00:01:03.00 bitrate=2542.4kbits/s speed= 1x elapsed=0:01:03.01 frame= 1921 fps= 30 q=-0.0 size= 19826KiB time=00:01:03.49 bitrate=2557.9kbits/s speed= 1x elapsed=0:01:03.51 frame= 1927 fps= 30 q=-0.0 size= 19848KiB time=00:01:03.96 bitrate=2542.0kbits/s speed=0.999x elapsed=0:01:04.01 frame= 1954 fps= 30 q=-0.0 size= 20123KiB time=00:01:04.49 bitrate=2555.9kbits/s speed= 1x elapsed=0:01:04.51 frame= 1954 fps= 30 q=-0.0 size= 20146KiB time=00:01:05.00 bitrate=2538.7kbits/s speed= 1x elapsed=0:01:05.01 frame= 1981 fps= 30 q=-0.0 size= 20444KiB time=00:01:05.49 bitrate=2556.9kbits/s speed= 1x elapsed=0:01:05.51 frame= 1987 fps= 30 q=-0.0 size= 20465KiB time=00:01:05.94 bitrate=2542.2kbits/s speed=0.999x elapsed=0:01:06.01 frame= 2008 fps= 30 q=-0.0 size= 20744KiB time=00:01:06.50 bitrate=2555.3kbits/s speed= 1x elapsed=0:01:06.51 frame= 2023 fps= 30 q=-0.0 size= 20767KiB time=00:01:06.99 bitrate=2539.4kbits/s speed= 1x elapsed=0:01:07.01 frame= 2035 fps= 30 q=-0.0 size= 20973KiB time=00:01:07.46 bitrate=2546.8kbits/s speed=0.999x elapsed=0:01:07.51 frame= 2055 fps= 30 q=-0.0 size= 21071KiB time=00:01:07.99 bitrate=2538.6kbits/s speed= 1x elapsed=0:01:08.01 frame= 2063 fps= 30 q=-0.0 size= 21273KiB time=00:01:08.50 bitrate=2543.8kbits/s speed= 1x elapsed=0:01:08.51 frame= 2088 fps= 30 q=-0.0 size= 21398KiB time=00:01:08.99 bitrate=2540.6kbits/s speed= 1x elapsed=0:01:09.01 frame= 2091 fps= 30 q=-0.0 size= 21607KiB time=00:01:09.44 bitrate=2548.9kbits/s speed=0.999x elapsed=0:01:09.51 frame= 2119 fps= 30 q=-0.0 size= 21742KiB time=00:01:10.00 bitrate=2544.5kbits/s speed= 1x elapsed=0:01:10.01 frame= 2119 fps= 30 q=-0.0 size= 21963KiB time=00:01:10.51 bitrate=2551.7kbits/s speed= 1x elapsed=0:01:10.51 frame= 2146 fps= 30 q=-0.0 size= 22108KiB time=00:01:10.95 bitrate=2552.3kbits/s speed=0.999x elapsed=0:01:11.01 frame= 2152 fps= 30 q=-0.0 size= 22338KiB time=00:01:11.49 bitrate=2559.6kbits/s speed= 1x elapsed=0:01:11.51 frame= 2173 fps= 30 q=-0.0 size= 22491KiB time=00:01:12.00 bitrate=2558.8kbits/s speed= 1x elapsed=0:01:12.01 frame= 2187 fps= 30 q=-0.0 size= 22712KiB time=00:01:12.45 bitrate=2568.0kbits/s speed=0.999x elapsed=0:01:12.51 frame= 2200 fps= 30 q=-0.0 size= 22900KiB time=00:01:12.94 bitrate=2571.7kbits/s speed=0.999x elapsed=0:01:13.01 frame= 2222 fps= 30 q=-0.0 size= 23279KiB time=00:01:13.49 bitrate=2594.6kbits/s speed= 1x elapsed=0:01:13.51 frame= 2227 fps= 30 q=-0.0 size= 23302KiB time=00:01:14.01 bitrate=2579.2kbits/s speed= 1x elapsed=0:01:14.01 frame= 2255 fps= 30 q=-0.0 size= 23676KiB time=00:01:14.45 bitrate=2604.8kbits/s speed=0.999x elapsed=0:01:14.51 frame= 2255 fps= 30 q=-0.0 size= 23700KiB time=00:01:14.99 bitrate=2589.0kbits/s speed= 1x elapsed=0:01:15.01 frame= 2283 fps= 30 q=-0.0 size= 23990KiB time=00:01:15.50 bitrate=2602.9kbits/s speed= 1x elapsed=0:01:15.51 frame= 2283 fps= 30 q=-0.0 size= 24014KiB time=00:01:15.99 bitrate=2588.6kbits/s speed= 1x elapsed=0:01:16.01 frame= 2311 fps= 30 q=-0.0 size= 24279KiB time=00:01:16.44 bitrate=2601.8kbits/s speed=0.999x elapsed=0:01:16.51 frame= 2317 fps= 30 q=-0.0 size= 24305KiB time=00:01:16.99 bitrate=2585.8kbits/s speed= 1x elapsed=0:01:17.01 frame= 2338 fps= 30 q=-0.0 size= 24586KiB time=00:01:17.51 bitrate=2598.5kbits/s speed= 1x elapsed=0:01:17.51 frame= 2352 fps= 30 q=-0.0 size= 24609KiB time=00:01:17.95 bitrate=2586.0kbits/s speed=0.999x elapsed=0:01:18.01 frame= 2365 fps= 30 q=-0.0 size= 24826KiB time=00:01:18.44 bitrate=2592.5kbits/s speed=0.999x elapsed=0:01:18.51 frame= 2388 fps= 30 q=-0.0 size= 24911KiB time=00:01:19.00 bitrate=2583.1kbits/s speed= 1x elapsed=0:01:19.01 frame= 2392 fps= 30 q=-0.0 size= 25104KiB time=00:01:19.49 bitrate=2587.0kbits/s speed= 1x elapsed=0:01:19.51 frame= 2419 fps= 30 q=-0.0 size= 25189KiB time=00:01:19.96 bitrate=2580.5kbits/s speed=0.999x elapsed=0:01:20.01 frame= 2419 fps= 30 q=-0.0 size= 25384KiB time=00:01:20.49 bitrate=2583.3kbits/s speed= 1x elapsed=0:01:20.51 frame= 2447 fps= 30 q=-0.0 size= 25480KiB time=00:01:21.01 bitrate=2576.6kbits/s speed= 1x elapsed=0:01:21.01 frame= 2448 fps= 30 q=-0.0 size= 25678KiB time=00:01:21.50 bitrate=2581.0kbits/s speed= 1x elapsed=0:01:21.51 frame= 2475 fps= 30 q=-0.0 size= 25775KiB time=00:01:21.94 bitrate=2576.6kbits/s speed=0.999x elapsed=0:01:22.01 frame= 2480 fps= 30 q=-0.0 size= 25976KiB time=00:01:22.50 bitrate=2579.2kbits/s speed= 1x elapsed=0:01:22.51 frame= 2503 fps= 30 q=-0.0 size= 26067KiB time=00:01:22.99 bitrate=2573.0kbits/s speed= 1x elapsed=0:01:23.01 frame= 2517 fps= 30 q=-0.0 size= 26273KiB time=00:01:23.46 bitrate=2578.8kbits/s speed=0.999x elapsed=0:01:23.51 frame= 2530 fps= 30 q=-0.0 size= 26353KiB time=00:01:23.99 bitrate=2570.1kbits/s speed= 1x elapsed=0:01:24.01 frame= 2553 fps= 30 q=-0.0 size= 26606KiB time=00:01:24.50 bitrate=2579.1kbits/s speed= 1x elapsed=0:01:24.51 frame= 2557 fps= 30 q=-0.0 size= 26627KiB time=00:01:24.99 bitrate=2566.2kbits/s speed= 1x elapsed=0:01:25.01 frame= 2584 fps= 30 q=-0.0 size= 26885KiB time=00:01:25.44 bitrate=2577.5kbits/s speed=0.999x elapsed=0:01:25.51 frame= 2584 fps= 30 q=-0.0 size= 26910KiB time=00:01:26.00 bitrate=2563.2kbits/s speed= 1x elapsed=0:01:26.01 frame= 2611 fps= 30 q=-0.0 size= 27186KiB time=00:01:26.51 bitrate=2574.2kbits/s speed= 1x elapsed=0:01:26.51 frame= 2615 fps= 30 q=-0.0 size= 27208KiB time=00:01:26.96 bitrate=2563.0kbits/s speed=0.999x elapsed=0:01:27.01 frame= 2639 fps= 30 q=-0.0 size= 27504KiB time=00:01:27.49 bitrate=2575.2kbits/s speed= 1x elapsed=0:01:27.51 frame= 2648 fps= 30 q=-0.0 size= 27527KiB time=00:01:28.00 bitrate=2562.3kbits/s speed= 1x elapsed=0:01:28.01 frame= 2667 fps= 30 q=-0.0 size= 27823KiB time=00:01:28.49 bitrate=2575.5kbits/s speed= 1x elapsed=0:01:28.51 frame= 2681 fps= 30 q=-0.0 size= 27843KiB time=00:01:28.90 bitrate=2565.7kbits/s speed=0.999x elapsed=0:01:29.01 frame= 2695 fps= 30 q=-0.0 size= 28150KiB time=00:01:29.50 bitrate=2576.5kbits/s speed= 1x elapsed=0:01:29.51 frame= 2717 fps= 30 q=-0.0 size= 28263KiB time=00:01:30.01 bitrate=2572.2kbits/s speed= 1x elapsed=0:01:30.01 frame= 2722 fps= 30 q=-0.0 size= 28480KiB time=00:01:30.50 bitrate=2577.9kbits/s speed= 1x elapsed=0:01:30.51 frame= 2749 fps= 30 q=-0.0 size= 28592KiB time=00:01:30.99 bitrate=2574.1kbits/s speed= 1x elapsed=0:01:31.01 frame= 2749 fps= 30 q=-0.0 size= 28810KiB time=00:01:31.50 bitrate=2579.2kbits/s speed= 1x elapsed=0:01:31.51 frame= 2776 fps= 30 q=-0.0 size= 28900KiB time=00:01:31.99 bitrate=2573.5kbits/s speed= 1x elapsed=0:01:32.01 frame= 2783 fps= 30 q=-0.0 size= 29109KiB time=00:01:32.44 bitrate=2579.6kbits/s speed=0.999x elapsed=0:01:32.51 frame= 2803 fps= 30 q=-0.0 size= 29206KiB time=00:01:32.99 bitrate=2572.7kbits/s speed= 1x elapsed=0:01:33.01 frame= 2815 fps= 30 q=-0.0 size= 29417KiB time=00:01:33.51 bitrate=2577.1kbits/s speed= 1x elapsed=0:01:33.51 frame= 2831 fps= 30 q=-0.0 size= 29533KiB time=00:01:34.00 bitrate=2573.7kbits/s speed= 1x elapsed=0:01:34.01 frame= 2848 fps= 30 q=-0.0 size= 29746KiB time=00:01:34.44 bitrate=2579.9kbits/s speed=0.999x elapsed=0:01:34.51 frame= 2859 fps= 30 q=-0.0 size= 29855KiB time=00:01:35.00 bitrate=2574.3kbits/s speed= 1x elapsed=0:01:35.01 frame= 2881 fps= 30 q=-0.0 size= 30194KiB time=00:01:35.45 bitrate=2591.4kbits/s speed=0.999x elapsed=0:01:35.51 frame= 2887 fps= 30 q=-0.0 size= 30217KiB time=00:01:35.96 bitrate=2579.5kbits/s speed=0.999x elapsed=0:01:36.01 frame= 2914 fps= 30 q=-0.0 size= 30526KiB time=00:01:36.49 bitrate=2591.5kbits/s speed= 1x elapsed=0:01:36.51 frame= 2914 fps= 30 q=-0.0 size= 30551KiB time=00:01:37.01 bitrate=2579.9kbits/s speed= 1x elapsed=0:01:37.01 frame= 2941 fps= 30 q=-0.0 size= 30909KiB time=00:01:37.50 bitrate=2597.0kbits/s speed= 1x elapsed=0:01:37.51 frame= 2948 fps= 30 q=-0.0 size= 30931KiB time=00:01:37.94 bitrate=2586.9kbits/s speed=0.999x elapsed=0:01:38.01 frame= 2968 fps= 30 q=-0.0 size= 31231KiB time=00:01:38.50 bitrate=2597.3kbits/s speed= 1x elapsed=0:01:38.51 frame= 2983 fps= 30 q=-0.0 size= 31254KiB time=00:01:38.99 bitrate=2586.4kbits/s speed= 1x elapsed=0:01:39.01 frame= 2995 fps= 30 q=-0.0 size= 31448KiB time=00:01:39.46 bitrate=2590.1kbits/s speed=0.999x elapsed=0:01:39.51 frame= 3015 fps= 30 q=-0.0 size= 31557KiB time=00:01:39.99 bitrate=2585.3kbits/s speed= 1x elapsed=0:01:40.01 frame= 3023 fps= 30 q=-0.0 size= 31758KiB time=00:01:40.50 bitrate=2588.5kbits/s speed= 1x elapsed=0:01:40.51 frame= 3048 fps= 30 q=-0.0 size= 31865KiB time=00:01:40.99 bitrate=2584.6kbits/s speed= 1x elapsed=0:01:41.01 frame= 3051 fps= 30 q=-0.0 size= 32053KiB time=00:01:41.44 bitrate=2588.3kbits/s speed=0.999x elapsed=0:01:41.51 frame= 3079 fps= 30 q=-0.0 size= 32160KiB time=00:01:41.99 bitrate=2582.9kbits/s speed= 1x elapsed=0:01:42.01 frame= 3079 fps= 30 q=-0.0 size= 32359KiB time=00:01:42.51 bitrate=2585.9kbits/s speed= 1x elapsed=0:01:42.51 frame= 3106 fps= 30 q=-0.0 size= 32459KiB time=00:01:43.00 bitrate=2581.5kbits/s speed= 1x elapsed=0:01:43.01 frame= 3112 fps= 30 q=-0.0 size= 32665KiB time=00:01:43.49 bitrate=2585.6kbits/s speed= 1x elapsed=0:01:43.51 frame= 3133 fps= 30 q=-0.0 size= 32963KiB time=00:01:44.00 bitrate=2596.3kbits/s speed= 1x elapsed=0:01:44.01 frame= 3147 fps= 30 q=-0.0 size= 33228KiB time=00:01:44.45 bitrate=2606.0kbits/s speed=0.999x elapsed=0:01:44.51 frame= 3160 fps= 30 q=-0.0 size= 33332KiB time=00:01:44.94 bitrate=2601.9kbits/s speed=0.999x elapsed=0:01:45.01 frame= 3182 fps= 30 q=-0.0 size= 33631KiB time=00:01:45.50 bitrate=2611.4kbits/s speed= 1x elapsed=0:01:45.51 frame= 3187 fps= 30 q=-0.0 size= 33648KiB time=00:01:46.01 bitrate=2600.1kbits/s speed= 1x elapsed=0:01:46.01 frame= 3215 fps= 30 q=-0.0 size= 34089KiB time=00:01:46.50 bitrate=2622.0kbits/s speed= 1x elapsed=0:01:46.51 frame= 3215 fps= 30 q=-0.0 size= 34106KiB time=00:01:46.99 bitrate=2611.4kbits/s speed= 1x elapsed=0:01:47.01 frame= 3243 fps= 30 q=-0.0 size= 34319KiB time=00:01:47.50 bitrate=2615.1kbits/s speed= 1x elapsed=0:01:47.51 frame= 3243 fps= 30 q=-0.0 size= 34336KiB time=00:01:47.99 bitrate=2604.5kbits/s speed= 1x elapsed=0:01:48.01 frame= 3271 fps= 30 q=-0.0 size= 34547KiB time=00:01:48.44 bitrate=2609.7kbits/s speed=0.999x elapsed=0:01:48.51 frame= 3277 fps= 30 q=-0.0 size= 34566KiB time=00:01:49.00 bitrate=2597.8kbits/s speed= 1x elapsed=0:01:49.01 frame= 3298 fps= 30 q=-0.0 size= 34778KiB time=00:01:49.51 bitrate=2601.6kbits/s speed= 1x elapsed=0:01:49.51 frame= 3313 fps= 30 q=-0.0 size= 34795KiB time=00:01:50.00 bitrate=2591.2kbits/s speed= 1x elapsed=0:01:50.01 frame= 3325 fps= 30 q=-0.0 size= 35006KiB time=00:01:50.45 bitrate=2596.4kbits/s speed=0.999x elapsed=0:01:50.51 frame= 3348 fps= 30 q=-0.0 size= 35026KiB time=00:01:51.00 bitrate=2584.9kbits/s speed= 1x elapsed=0:01:51.01 frame= 3352 fps= 30 q=-0.0 size= 35237KiB time=00:01:51.49 bitrate=2589.0kbits/s speed= 1x elapsed=0:01:51.51 frame= 3379 fps= 30 q=-0.0 size= 35255KiB time=00:01:51.96 bitrate=2579.4kbits/s speed= 1x elapsed=0:01:52.01 frame= 3379 fps= 30 q=-0.0 size= 35467KiB time=00:01:52.49 bitrate=2582.7kbits/s speed= 1x elapsed=0:01:52.51 frame= 3407 fps= 30 q=-0.0 size= 35490KiB time=00:01:53.01 bitrate=2572.6kbits/s speed= 1x elapsed=0:01:53.01 frame= 3408 fps= 30 q=-0.0 size= 35702KiB time=00:01:53.50 bitrate=2576.8kbits/s speed= 1x elapsed=0:01:53.51 frame= 3435 fps= 30 q=-0.0 size= 35718KiB time=00:01:53.94 bitrate=2567.8kbits/s speed=0.999x elapsed=0:01:54.01 frame= 3441 fps= 30 q=-0.0 size= 35928KiB time=00:01:54.50 bitrate=2570.4kbits/s speed= 1x elapsed=0:01:54.51 frame= 3463 fps= 30 q=-0.0 size= 35945KiB time=00:01:54.99 bitrate=2560.6kbits/s speed= 1x elapsed=0:01:55.01 frame= 3477 fps= 30 q=-0.0 size= 36152KiB time=00:01:55.46 bitrate=2564.9kbits/s speed= 1x elapsed=0:01:55.51 frame= 3490 fps= 30 q=-0.0 size= 36170KiB time=00:01:55.99 bitrate=2554.4kbits/s speed= 1x elapsed=0:01:56.01 frame= 3513 fps= 30 q=-0.0 size= 36379KiB time=00:01:56.50 bitrate=2557.9kbits/s speed= 1x elapsed=0:01:56.52 frame= 3517 fps= 30 q=-0.0 size= 36395KiB time=00:01:57.00 bitrate=2548.3kbits/s speed= 1x elapsed=0:01:57.02 frame= 3544 fps= 30 q=-0.0 size= 36602KiB time=00:01:57.44 bitrate=2553.0kbits/s speed=0.999x elapsed=0:01:57.52 frame= 3544 fps= 30 q=-0.0 size= 36621KiB time=00:01:58.00 bitrate=2542.3kbits/s speed= 1x elapsed=0:01:58.02 frame= 3571 fps= 30 q=-0.0 size= 36830KiB time=00:01:58.51 bitrate=2545.8kbits/s speed= 1x elapsed=0:01:58.52 frame= 3575 fps= 30 q=-0.0 size= 36846KiB time=00:01:59.00 bitrate=2536.4kbits/s speed= 1x elapsed=0:01:59.02 frame= 3599 fps= 30 q=-0.0 size= 37054KiB time=00:01:59.49 bitrate=2540.2kbits/s speed= 1x elapsed=0:01:59.52 frame= 3608 fps= 30 q=-0.0 size= 37071KiB time=00:02:00.00 bitrate=2530.6kbits/s speed= 1x elapsed=0:02:00.02 frame= 3627 fps= 30 q=-0.0 size= 37280KiB time=00:02:00.49 bitrate=2534.5kbits/s speed= 1x elapsed=0:02:00.52 frame= 3641 fps= 30 q=-0.0 size= 37296KiB time=00:02:00.94 bitrate=2526.1kbits/s speed=0.999x elapsed=0:02:01.02 frame= 3655 fps= 30 q=-0.0 size= 37506KiB time=00:02:01.50 bitrate=2528.8kbits/s speed= 1x elapsed=0:02:01.52 frame= 3678 fps= 30 q=-0.0 size= 37525KiB time=00:02:02.01 bitrate=2519.4kbits/s speed= 1x elapsed=0:02:02.02 frame= 3682 fps= 30 q=-0.0 size= 37733KiB time=00:02:02.50 bitrate=2523.2kbits/s speed= 1x elapsed=0:02:02.52 frame= 3709 fps= 30 q=-0.0 size= 37750KiB time=00:02:02.99 bitrate=2514.3kbits/s speed= 1x elapsed=0:02:03.02 frame= 3709 fps= 30 q=-0.0 size= 37960KiB time=00:02:03.50 bitrate=2517.8kbits/s speed= 1x elapsed=0:02:03.52 frame= 3736 fps= 30 q=-0.0 size= 37977KiB time=00:02:03.99 bitrate=2509.0kbits/s speed= 1x elapsed=0:02:04.02 frame= 3743 fps= 30 q=-0.0 size= 38186KiB time=00:02:04.44 bitrate=2513.7kbits/s speed=0.999x elapsed=0:02:04.52 frame= 3763 fps= 30 q=-0.0 size= 38204KiB time=00:02:04.99 bitrate=2503.8kbits/s speed= 1x elapsed=0:02:05.02 frame= 3775 fps= 30 q=-0.0 size= 38415KiB time=00:02:05.51 bitrate=2507.3kbits/s speed= 1x elapsed=0:02:05.52 frame= 3791 fps= 30 q=-0.0 size= 38432KiB time=00:02:06.00 bitrate=2498.7kbits/s speed= 1x elapsed=0:02:06.02 frame= 3808 fps= 30 q=-0.0 size= 38641KiB time=00:02:06.45 bitrate=2503.4kbits/s speed=0.999x elapsed=0:02:06.52 frame= 3819 fps= 30 q=-0.0 size= 38660KiB time=00:02:07.00 bitrate=2493.6kbits/s speed= 1x elapsed=0:02:07.02 frame= 3841 fps= 30 q=-0.0 size= 38870KiB time=00:02:07.49 bitrate=2497.5kbits/s speed= 1x elapsed=0:02:07.52 frame= 3847 fps= 30 q=-0.0 size= 38886KiB time=00:02:07.96 bitrate=2489.4kbits/s speed= 1x elapsed=0:02:08.02 frame= 3874 fps= 30 q=-0.0 size= 39098KiB time=00:02:08.49 bitrate=2492.5kbits/s speed= 1x elapsed=0:02:08.52 frame= 3874 fps= 30 q=-0.0 size= 39115KiB time=00:02:09.01 bitrate=2483.8kbits/s speed= 1x elapsed=0:02:09.02 frame= 3901 fps= 30 q=-0.0 size= 39327KiB time=00:02:09.50 bitrate=2487.8kbits/s speed= 1x elapsed=0:02:09.52 frame= 3908 fps= 30 q=-0.0 size= 39344KiB time=00:02:09.95 bitrate=2480.2kbits/s speed=0.999x elapsed=0:02:10.02 frame= 3928 fps= 30 q=-0.0 size= 39555KiB time=00:02:10.50 bitrate=2482.9kbits/s speed= 1x elapsed=0:02:10.52 frame= 3943 fps= 30 q=-0.0 size= 39574KiB time=00:02:10.99 bitrate=2474.8kbits/s speed= 1x elapsed=0:02:11.02 frame= 3955 fps= 30 q=-0.0 size= 39784KiB time=00:02:11.50 bitrate=2478.3kbits/s speed= 1x elapsed=0:02:11.52 frame= 3976 fps= 30 q=-0.0 size= 39802KiB time=00:02:11.99 bitrate=2470.2kbits/s speed= 1x elapsed=0:02:12.02 frame= 3983 fps= 30 q=-0.0 size= 40013KiB time=00:02:12.51 bitrate=2473.6kbits/s speed= 1x elapsed=0:02:12.52 frame= 4008 fps= 30 q=-0.0 size= 40029KiB time=00:02:13.00 bitrate=2465.6kbits/s speed= 1x elapsed=0:02:13.02 frame= 4011 fps= 30 q=-0.0 size= 40239KiB time=00:02:13.44 bitrate=2470.1kbits/s speed=0.999x elapsed=0:02:13.52 frame= 4039 fps= 30 q=-0.0 size= 40257KiB time=00:02:14.00 bitrate=2461.1kbits/s speed= 1x elapsed=0:02:14.02 frame= 4039 fps= 30 q=-0.0 size= 40470KiB time=00:02:14.51 bitrate=2464.6kbits/s speed= 1x elapsed=0:02:14.52 frame= 4066 fps= 30 q=-0.0 size= 40487KiB time=00:02:15.00 bitrate=2456.7kbits/s speed= 1x elapsed=0:02:15.02 frame= 4073 fps= 30 q=-0.0 size= 40699KiB time=00:02:15.49 bitrate=2460.6kbits/s speed= 1x elapsed=0:02:15.52 frame= 4093 fps= 30 q=-0.0 size= 40716KiB time=00:02:16.00 bitrate=2452.4kbits/s speed= 1x elapsed=0:02:16.02 frame= 4108 fps= 30 q=-0.0 size= 40926KiB time=00:02:16.50 bitrate=2456.2kbits/s speed= 1x elapsed=0:02:16.52 frame= 4120 fps= 30 q=-0.0 size= 40942KiB time=00:02:16.97 bitrate=2448.7kbits/s speed= 1x elapsed=0:02:17.02 frame= 4144 fps= 30 q=-0.0 size= 41155KiB time=00:02:17.50 bitrate=2451.9kbits/s speed= 1x elapsed=0:02:17.52 frame= 4147 fps= 30 q=-0.0 size= 41172KiB time=00:02:18.01 bitrate=2443.8kbits/s speed= 1x elapsed=0:02:18.02 frame= 4175 fps= 30 q=-0.0 size= 41383KiB time=00:02:18.50 bitrate=2447.6kbits/s speed= 1x elapsed=0:02:18.52 frame= 4175 fps= 30 q=-0.0 size= 41400KiB time=00:02:18.99 bitrate=2439.9kbits/s speed= 1x elapsed=0:02:19.02 frame= 4203 fps= 30 q=-0.0 size= 41613KiB time=00:02:19.50 bitrate=2443.5kbits/s speed= 1x elapsed=0:02:19.52 frame= 4203 fps= 30 q=-0.0 size= 41629KiB time=00:02:19.99 bitrate=2435.9kbits/s speed= 1x elapsed=0:02:20.02 frame= 4231 fps= 30 q=-0.0 size= 41843KiB time=00:02:20.51 bitrate=2439.5kbits/s speed= 1x elapsed=0:02:20.52 frame= 4237 fps= 30 q=-0.0 size= 41861KiB time=00:02:21.00 bitrate=2432.0kbits/s speed= 1x elapsed=0:02:21.02 frame= 4258 fps= 30 q=-0.0 size= 42072KiB time=00:02:21.51 bitrate=2435.5kbits/s speed= 1x elapsed=0:02:21.52 frame= 4273 fps= 30 q=-0.0 size= 42088KiB time=00:02:21.96 bitrate=2428.7kbits/s speed= 1x elapsed=0:02:22.02 frame= 4285 fps= 30 q=-0.0 size= 42298KiB time=00:02:22.45 bitrate=2432.4kbits/s speed=0.999x elapsed=0:02:22.52 frame= 4308 fps= 30 q=-0.0 size= 42317KiB time=00:02:23.00 bitrate=2424.1kbits/s speed= 1x elapsed=0:02:23.02 frame= 4312 fps= 30 q=-0.0 size= 42527KiB time=00:02:23.49 bitrate=2427.8kbits/s speed= 1x elapsed=0:02:23.52 frame= 4339 fps= 30 q=-0.0 size= 42545KiB time=00:02:24.00 bitrate=2420.2kbits/s speed= 1x elapsed=0:02:24.02 frame= 4339 fps= 30 q=-0.0 size= 42756KiB time=00:02:24.50 bitrate=2423.9kbits/s speed= 1x elapsed=0:02:24.52 frame= 4367 fps= 30 q=-0.0 size= 42774KiB time=00:02:25.01 bitrate=2416.4kbits/s speed= 1x elapsed=0:02:25.02 frame= 4368 fps= 30 q=-0.0 size= 42985KiB time=00:02:25.50 bitrate=2420.1kbits/s speed= 1x elapsed=0:02:25.52 frame= 4395 fps= 30 q=-0.0 size= 43002KiB time=00:02:25.94 bitrate=2413.7kbits/s speed=0.999x elapsed=0:02:26.02 frame= 4401 fps= 30 q=-0.0 size= 43215KiB time=00:02:26.50 bitrate=2416.4kbits/s speed= 1x elapsed=0:02:26.52 frame= 4423 fps= 30 q=-0.0 size= 43233KiB time=00:02:26.99 bitrate=2409.3kbits/s speed= 1x elapsed=0:02:27.02 frame= 4437 fps= 30 q=-0.0 size= 43443KiB time=00:02:27.46 bitrate=2413.4kbits/s speed= 1x elapsed=0:02:27.52 frame= 4450 fps= 30 q=-0.0 size= 43461KiB time=00:02:27.99 bitrate=2405.6kbits/s speed= 1x elapsed=0:02:28.02 frame= 4473 fps= 30 q=-0.0 size= 43674KiB time=00:02:28.51 bitrate=2409.1kbits/s speed= 1x elapsed=0:02:28.52 frame= 4477 fps= 30 q=-0.0 size= 43690KiB time=00:02:29.00 bitrate=2402.0kbits/s speed= 1x elapsed=0:02:29.02 frame= 4504 fps= 30 q=-0.0 size= 43902KiB time=00:02:29.51 bitrate=2405.4kbits/s speed= 1x elapsed=0:02:29.52 frame= 4504 fps= 30 q=-0.0 size= 43918KiB time=00:02:30.00 bitrate=2398.5kbits/s speed= 1x elapsed=0:02:30.02 frame= 4531 fps= 30 q=-0.0 size= 44131KiB time=00:02:30.51 bitrate=2401.9kbits/s speed= 1x elapsed=0:02:30.52 frame= 4535 fps= 30 q=-0.0 size= 44147KiB time=00:02:30.96 bitrate=2395.6kbits/s speed= 1x elapsed=0:02:31.02 frame= 4559 fps= 30 q=-0.0 size= 44359KiB time=00:02:31.49 bitrate=2398.7kbits/s speed= 1x elapsed=0:02:31.52 frame= 4568 fps= 30 q=-0.0 size= 44377KiB time=00:02:32.00 bitrate=2391.6kbits/s speed= 1x elapsed=0:02:32.02 frame= 4587 fps= 30 q=-0.0 size= 44589KiB time=00:02:32.50 bitrate=2395.2kbits/s speed= 1x elapsed=0:02:32.52 frame= 4601 fps= 30 q=-0.0 size= 44605KiB time=00:02:32.94 bitrate=2389.1kbits/s speed=0.999x elapsed=0:02:33.02 frame= 4615 fps= 30 q=-0.0 size= 44818KiB time=00:02:33.50 bitrate=2391.8kbits/s speed= 1x elapsed=0:02:33.52 frame= 4637 fps= 30 q=-0.0 size= 44837KiB time=00:02:34.01 bitrate=2384.9kbits/s speed= 1x elapsed=0:02:34.02 frame= 4642 fps= 30 q=-0.0 size= 45048KiB time=00:02:34.50 bitrate=2388.5kbits/s speed= 1x elapsed=0:02:34.52 frame= 4669 fps= 30 q=-0.0 size= 45066KiB time=00:02:34.99 bitrate=2381.9kbits/s speed= 1x elapsed=0:02:35.02 frame= 4669 fps= 30 q=-0.0 size= 45278KiB time=00:02:35.50 bitrate=2385.2kbits/s speed= 1x elapsed=0:02:35.52 frame= 4696 fps= 30 q=-0.0 size= 45295KiB time=00:02:35.99 bitrate=2378.6kbits/s speed= 1x elapsed=0:02:36.02 frame= 4703 fps= 30 q=-0.0 size= 45507KiB time=00:02:36.44 bitrate=2382.9kbits/s speed=0.999x elapsed=0:02:36.52 frame= 4723 fps= 30 q=-0.0 size= 45526KiB time=00:02:37.00 bitrate=2375.4kbits/s speed= 1x elapsed=0:02:37.02 frame= 4735 fps= 30 q=-0.0 size= 45739KiB time=00:02:37.51 bitrate=2378.8kbits/s speed= 1x elapsed=0:02:37.52 frame= 4751 fps= 30 q=-0.0 size= 45756KiB time=00:02:38.00 bitrate=2372.3kbits/s speed= 1x elapsed=0:02:38.02 frame= 4769 fps= 30 q=-0.0 size= 45967KiB time=00:02:38.45 bitrate=2376.5kbits/s speed= 1x elapsed=0:02:38.52 frame= 4779 fps= 30 q=-0.0 size= 45986KiB time=00:02:39.00 bitrate=2369.1kbits/s speed= 1x elapsed=0:02:39.02 frame= 4805 fps= 30 q=-0.0 size= 46199KiB time=00:02:39.49 bitrate=2372.8kbits/s speed= 1x elapsed=0:02:39.52 frame= 4806 fps= 30 q=-0.0 size= 46216KiB time=00:02:40.01 bitrate=2366.1kbits/s speed= 1x elapsed=0:02:40.02 frame= 4833 fps= 30 q=-0.0 size= 46429KiB time=00:02:40.50 bitrate=2369.7kbits/s speed= 1x elapsed=0:02:40.52 frame= 4835 fps= 30 q=-0.0 size= 46447KiB time=00:02:41.01 bitrate=2363.1kbits/s speed= 1x elapsed=0:02:41.02 frame= 4860 fps= 30 q=-0.0 size= 46659KiB time=00:02:41.50 bitrate=2366.7kbits/s speed= 1x elapsed=0:02:41.52 frame= 4870 fps= 30 q=-0.0 size= 46675KiB time=00:02:41.95 bitrate=2360.9kbits/s speed= 1x elapsed=0:02:42.02 frame= 4887 fps= 30 q=-0.0 size= 46889KiB time=00:02:42.50 bitrate=2363.7kbits/s speed= 1x elapsed=0:02:42.52 frame= 4906 fps= 30 q=-0.0 size= 46907KiB time=00:02:42.99 bitrate=2357.5kbits/s speed= 1x elapsed=0:02:43.02 frame= 4914 fps= 30 q=-0.0 size= 47120KiB time=00:02:43.50 bitrate=2360.8kbits/s speed= 1x elapsed=0:02:43.52 frame= 4940 fps= 30 q=-0.0 size= 47138KiB time=00:02:43.99 bitrate=2354.6kbits/s speed= 1x elapsed=0:02:44.02 frame= 4940 fps= 30 q=-0.0 size= 47350KiB time=00:02:44.51 bitrate=2357.9kbits/s speed= 1x elapsed=0:02:44.52 frame= 4967 fps= 30 q=-0.0 size= 47367KiB time=00:02:45.00 bitrate=2351.7kbits/s speed= 1x elapsed=0:02:45.02 frame= 4968 fps= 30 q=-0.0 size= 47581KiB time=00:02:45.51 bitrate=2355.0kbits/s speed= 1x elapsed=0:02:45.52 frame= 4995 fps= 30 q=-0.0 size= 47598KiB time=00:02:46.00 bitrate=2348.9kbits/s speed= 1x elapsed=0:02:46.02 frame= 5004 fps= 30 q=-0.0 size= 47812KiB time=00:02:46.51 bitrate=2352.2kbits/s speed= 1x elapsed=0:02:46.52 frame= 5022 fps= 30 q=-0.0 size= 47831KiB time=00:02:47.00 bitrate=2346.2kbits/s speed= 1x elapsed=0:02:47.02 frame= 5039 fps= 30 q=-0.0 size= 48045KiB time=00:02:47.49 bitrate=2349.8kbits/s speed= 1x elapsed=0:02:47.52 frame= 5049 fps= 30 q=-0.0 size= 48062KiB time=00:02:48.01 bitrate=2343.5kbits/s speed= 1x elapsed=0:02:48.02 frame= 5074 fps= 30 q=-0.0 size= 48276KiB time=00:02:48.49 bitrate=2347.0kbits/s speed= 1x elapsed=0:02:48.52 frame= 5076 fps= 30 q=-0.0 size= 48293KiB time=00:02:49.01 bitrate=2340.7kbits/s speed= 1x elapsed=0:02:49.02 frame= 5104 fps= 30 q=-0.0 size= 48506KiB time=00:02:49.50 bitrate=2344.3kbits/s speed= 1x elapsed=0:02:49.52 frame= 5104 fps= 30 q=-0.0 size= 48524KiB time=00:02:50.01 bitrate=2338.1kbits/s speed= 1x elapsed=0:02:50.02 frame= 5131 fps= 30 q=-0.0 size= 48737KiB time=00:02:50.50 bitrate=2341.6kbits/s speed= 1x elapsed=0:02:50.52 frame= 5138 fps= 30 q=-0.0 size= 48756KiB time=00:02:50.99 bitrate=2335.7kbits/s speed= 1x elapsed=0:02:51.02 frame= 5158 fps= 30 q=-0.0 size= 48969KiB time=00:02:51.50 bitrate=2339.0kbits/s speed= 1x elapsed=0:02:51.52 frame= 5173 fps= 30 q=-0.0 size= 48985KiB time=00:02:51.99 bitrate=2333.1kbits/s speed= 1x elapsed=0:02:52.02 frame= 5185 fps= 30 q=-0.0 size= 49200KiB time=00:02:52.51 bitrate=2336.3kbits/s speed= 1x elapsed=0:02:52.52 frame= 5209 fps= 30 q=-0.0 size= 49217KiB time=00:02:53.00 bitrate=2330.5kbits/s speed= 1x elapsed=0:02:53.02 frame= 5212 fps= 30 q=-0.0 size= 49431KiB time=00:02:53.51 bitrate=2333.7kbits/s speed= 1x elapsed=0:02:53.52 frame= 5240 fps= 30 q=-0.0 size= 49449KiB time=00:02:54.00 bitrate=2328.0kbits/s speed= 1x elapsed=0:02:54.02 frame= 5240 fps= 30 q=-0.0 size= 49662KiB time=00:02:54.51 bitrate=2331.2kbits/s speed= 1x elapsed=0:02:54.52 frame= 5268 fps= 30 q=-0.0 size= 49679KiB time=00:02:55.00 bitrate=2325.4kbits/s speed= 1x elapsed=0:02:55.02 frame= 5268 fps= 30 q=-0.0 size= 49892KiB time=00:02:55.49 bitrate=2328.9kbits/s speed= 1x elapsed=0:02:55.52 frame= 5296 fps= 30 q=-0.0 size= 49911KiB time=00:02:56.01 bitrate=2323.0kbits/s speed= 1x elapsed=0:02:56.03 frame= 5302 fps= 30 q=-0.0 size= 50126KiB time=00:02:56.50 bitrate=2326.5kbits/s speed= 1x elapsed=0:02:56.53 frame= 5323 fps= 30 q=-0.0 size= 50143KiB time=00:02:57.01 bitrate=2320.6kbits/s speed= 1x elapsed=0:02:57.03 frame= 5338 fps= 30 q=-0.0 size= 50356KiB time=00:02:57.50 bitrate=2324.0kbits/s speed= 1x elapsed=0:02:57.53 frame= 5350 fps= 30 q=-0.0 size= 50374KiB time=00:02:58.01 bitrate=2318.2kbits/s speed= 1x elapsed=0:02:58.03 frame= 5373 fps= 30 q=-0.0 size= 50588KiB time=00:02:58.50 bitrate=2321.6kbits/s speed= 1x elapsed=0:02:58.53 frame= 5377 fps= 30 q=-0.0 size= 50604KiB time=00:02:58.99 bitrate=2316.0kbits/s speed= 1x elapsed=0:02:59.03 frame= 5404 fps= 30 q=-0.0 size= 50818KiB time=00:02:59.50 bitrate=2319.1kbits/s speed= 1x elapsed=0:02:59.53 frame= 5404 fps= 30 q=-0.0 size= 50836KiB time=00:02:59.99 bitrate=2313.6kbits/s speed= 1x elapsed=0:03:00.03 frame= 5432 fps= 30 q=-0.0 size= 51050KiB time=00:03:00.51 bitrate=2316.8kbits/s speed= 1x elapsed=0:03:00.53 frame= 5434 fps= 30 q=-0.0 size= 51068KiB time=00:03:01.00 bitrate=2311.3kbits/s speed= 1x elapsed=0:03:01.03 frame= 5460 fps= 30 q=-0.0 size= 51282KiB time=00:03:01.51 bitrate=2314.4kbits/s speed= 1x elapsed=0:03:01.53 frame= 5467 fps= 30 q=-0.0 size= 51299KiB time=00:03:02.00 bitrate=2308.9kbits/s speed= 1x elapsed=0:03:02.03 frame= 5488 fps= 30 q=-0.0 size= 51514KiB time=00:03:02.51 bitrate=2312.1kbits/s speed= 1x elapsed=0:03:02.53 frame= 5503 fps= 30 q=-0.0 size= 51530KiB time=00:03:03.00 bitrate=2306.6kbits/s speed= 1x elapsed=0:03:03.03 frame= 5515 fps= 30 q=-0.0 size= 51743KiB time=00:03:03.49 bitrate=2310.0kbits/s speed= 1x elapsed=0:03:03.53 frame= 5538 fps= 30 q=-0.0 size= 51762KiB time=00:03:04.01 bitrate=2304.4kbits/s speed= 1x elapsed=0:03:04.03 frame= 5542 fps= 30 q=-0.0 size= 51974KiB time=00:03:04.50 bitrate=2307.7kbits/s speed= 1x elapsed=0:03:04.53 frame= 5569 fps= 30 q=-0.0 size= 51992KiB time=00:03:05.01 bitrate=2302.1kbits/s speed= 1x elapsed=0:03:05.03 frame= 5569 fps= 30 q=-0.0 size= 52205KiB time=00:03:05.50 bitrate=2305.4kbits/s speed= 1x elapsed=0:03:05.53 frame= 5596 fps= 30 q=-0.0 size= 52224KiB time=00:03:06.01 bitrate=2299.9kbits/s speed= 1x elapsed=0:03:06.03 frame= 5601 fps= 30 q=-0.0 size= 52437KiB time=00:03:06.50 bitrate=2303.2kbits/s speed= 1x elapsed=0:03:06.53 frame= 5624 fps= 30 q=-0.0 size= 52454KiB time=00:03:06.99 bitrate=2297.9kbits/s speed= 1x elapsed=0:03:07.03 frame= 5634 fps= 30 q=-0.0 size= 52669KiB time=00:03:07.50 bitrate=2301.0kbits/s speed= 1x elapsed=0:03:07.53 frame= 5652 fps= 30 q=-0.0 size= 52685KiB time=00:03:08.00 bitrate=2295.7kbits/s speed= 1x elapsed=0:03:08.03 frame= 5666 fps= 30 q=-0.0 size= 52899KiB time=00:03:08.51 bitrate=2298.8kbits/s speed= 1x elapsed=0:03:08.53 frame= 5680 fps= 30 q=-0.0 size= 52916KiB time=00:03:09.00 bitrate=2293.5kbits/s speed= 1x elapsed=0:03:09.03 frame= 5703 fps= 30 q=-0.0 size= 53131KiB time=00:03:09.51 bitrate=2296.6kbits/s speed= 1x elapsed=0:03:09.53 frame= 5707 fps= 30 q=-0.0 size= 53146KiB time=00:03:10.00 bitrate=2291.4kbits/s speed= 1x elapsed=0:03:10.03 frame= 5734 fps= 30 q=-0.0 size= 53362KiB time=00:03:10.51 bitrate=2294.5kbits/s speed= 1x elapsed=0:03:10.53 frame= 5734 fps= 30 q=-0.0 size= 53379KiB time=00:03:11.00 bitrate=2289.3kbits/s speed= 1x elapsed=0:03:11.03 frame= 5761 fps= 30 q=-0.0 size= 53592KiB time=00:03:11.50 bitrate=2292.6kbits/s speed= 1x elapsed=0:03:11.53 frame= 5769 fps= 30 q=-0.0 size= 53610KiB time=00:03:12.01 bitrate=2287.2kbits/s speed= 1x elapsed=0:03:12.03 frame= 5788 fps= 30 q=-0.0 size= 53823KiB time=00:03:12.50 bitrate=2290.5kbits/s speed= 1x elapsed=0:03:12.53 frame= 5801 fps= 30 q=-0.0 size= 53842KiB time=00:03:13.01 bitrate=2285.2kbits/s speed= 1x elapsed=0:03:13.03 frame= 5816 fps= 30 q=-0.0 size= 54055KiB time=00:03:13.50 bitrate=2288.4kbits/s speed= 1x elapsed=0:03:13.53 frame= 5835 fps= 30 q=-0.0 size= 54071KiB time=00:03:13.95 bitrate=2283.8kbits/s speed= 1x elapsed=0:03:14.03 frame= 5844 fps= 30 q=-0.0 size= 54286KiB time=00:03:14.50 bitrate=2286.3kbits/s speed= 1x elapsed=0:03:14.53 frame= 5866 fps= 30 q=-0.0 size= 54303KiB time=00:03:14.99 bitrate=2281.3kbits/s speed= 1x elapsed=0:03:15.03 frame= 5872 fps= 30 q=-0.0 size= 54517KiB time=00:03:15.51 bitrate=2284.3kbits/s speed= 1x elapsed=0:03:15.53 frame= 5899 fps= 30 q=-0.0 size= 54534KiB time=00:03:16.00 bitrate=2279.3kbits/s speed= 1x elapsed=0:03:16.03 frame= 5899 fps= 30 q=-0.0 size= 54749KiB time=00:03:16.51 bitrate=2282.3kbits/s speed= 1x elapsed=0:03:16.53 frame= 5926 fps= 30 q=-0.0 size= 54765KiB time=00:03:17.00 bitrate=2277.3kbits/s speed= 1x elapsed=0:03:17.03 frame= 5934 fps= 30 q=-0.0 size= 54980KiB time=00:03:17.51 bitrate=2280.3kbits/s speed= 1x elapsed=0:03:17.53 frame= 5953 fps= 30 q=-0.0 size= 54996KiB time=00:03:18.00 bitrate=2275.3kbits/s speed= 1x elapsed=0:03:18.03 frame= 5969 fps= 30 q=-0.0 size= 55212KiB time=00:03:18.51 bitrate=2278.3kbits/s speed= 1x elapsed=0:03:18.53 frame= 5980 fps= 30 q=-0.0 size= 55229KiB time=00:03:19.01 bitrate=2273.4kbits/s speed= 1x elapsed=0:03:19.03 frame= 6001 fps= 30 q=-0.0 size= 55443KiB time=00:03:19.50 bitrate=2276.6kbits/s speed= 1x elapsed=0:03:19.53 frame= 6008 fps= 30 q=-0.0 size= 55460KiB time=00:03:20.01 bitrate=2271.5kbits/s speed= 1x elapsed=0:03:20.03 frame= 6034 fps= 30 q=-0.0 size= 55674KiB time=00:03:20.50 bitrate=2274.7kbits/s speed= 1x elapsed=0:03:20.53 frame= 6036 fps= 30 q=-0.0 size= 55691KiB time=00:03:21.01 bitrate=2269.6kbits/s speed= 1x elapsed=0:03:21.03 frame= 6063 fps= 30 q=-0.0 size= 55904KiB time=00:03:21.50 bitrate=2272.7kbits/s speed= 1x elapsed=0:03:21.53 frame= 6065 fps= 30 q=-0.0 size= 55923KiB time=00:03:22.01 bitrate=2267.7kbits/s speed= 1x elapsed=0:03:22.03 frame= 6090 fps= 30 q=-0.0 size= 56135KiB time=00:03:22.50 bitrate=2270.8kbits/s speed= 1x elapsed=0:03:22.53 frame= 6100 fps= 30 q=-0.0 size= 56153KiB time=00:03:22.99 bitrate=2266.1kbits/s speed= 1x elapsed=0:03:23.03 frame= 6117 fps= 30 q=-0.0 size= 56367KiB time=00:03:23.51 bitrate=2268.9kbits/s speed= 1x elapsed=0:03:23.53 frame= 6136 fps= 30 q=-0.0 size= 56383KiB time=00:03:24.00 bitrate=2264.2kbits/s speed= 1x elapsed=0:03:24.03 frame= 6144 fps= 30 q=-0.0 size= 56598KiB time=00:03:24.51 bitrate=2267.1kbits/s speed= 1x elapsed=0:03:24.53 frame= 6171 fps= 30 q=-0.0 size= 56615KiB time=00:03:25.00 bitrate=2262.4kbits/s speed= 1x elapsed=0:03:25.03 frame= 6171 fps= 30 q=-0.0 size= 56829KiB time=00:03:25.51 bitrate=2265.2kbits/s speed= 1x elapsed=0:03:25.53 frame= 6197 fps= 30 q=-0.0 size= 56847KiB time=00:03:26.00 bitrate=2260.6kbits/s speed= 1x elapsed=0:03:26.03 frame= 6198 fps= 30 q=-0.0 size= 57061KiB time=00:03:26.51 bitrate=2263.4kbits/s speed= 1x elapsed=0:03:26.53 frame= 6226 fps= 30 q=-0.0 size= 57078KiB time=00:03:27.00 bitrate=2258.7kbits/s speed= 1x elapsed=0:03:27.03 frame= 6231 fps= 30 q=-0.0 size= 57290KiB time=00:03:27.50 bitrate=2261.8kbits/s speed= 1x elapsed=0:03:27.53 frame= 6254 fps= 30 q=-0.0 size= 57308KiB time=00:03:28.01 bitrate=2256.9kbits/s speed= 1x elapsed=0:03:28.03 frame= 6265 fps= 30 q=-0.0 size= 57521KiB time=00:03:28.50 bitrate=2260.0kbits/s speed= 1x elapsed=0:03:28.53 frame= 6282 fps= 30 q=-0.0 size= 57539KiB time=00:03:29.01 bitrate=2255.1kbits/s speed= 1x elapsed=0:03:29.03 frame= 6301 fps= 30 q=-0.0 size= 57752KiB time=00:03:29.50 bitrate=2258.2kbits/s speed= 1x elapsed=0:03:29.53 frame= 6309 fps= 30 q=-0.0 size= 57770KiB time=00:03:30.01 bitrate=2253.4kbits/s speed= 1x elapsed=0:03:30.03 frame= 6336 fps= 30 q=-0.0 size= 57984KiB time=00:03:30.50 bitrate=2256.5kbits/s speed= 1x elapsed=0:03:30.53 frame= 6336 fps= 30 q=-0.0 size= 58000KiB time=00:03:30.99 bitrate=2251.9kbits/s speed= 1x elapsed=0:03:31.03 frame= 6363 fps= 30 q=-0.0 size= 58214KiB time=00:03:31.51 bitrate=2254.7kbits/s speed= 1x elapsed=0:03:31.53 frame= 6367 fps= 30 q=-0.0 size= 58232KiB time=00:03:32.00 bitrate=2250.1kbits/s speed= 1x elapsed=0:03:32.03 frame= 6389 fps= 30 q=-0.0 size= 58445KiB time=00:03:32.51 bitrate=2253.0kbits/s speed= 1x elapsed=0:03:32.53 frame= 6398 fps= 30 q=-0.0 size= 58462KiB time=00:03:33.00 bitrate=2248.4kbits/s speed= 1x elapsed=0:03:33.03 frame= 6418 fps= 30 q=-0.0 size= 58676KiB time=00:03:33.51 bitrate=2251.2kbits/s speed= 1x elapsed=0:03:33.53 frame= 6432 fps= 30 q=-0.0 size= 58693KiB time=00:03:34.00 bitrate=2246.7kbits/s speed= 1x elapsed=0:03:34.03 frame= 6446 fps= 30 q=-0.0 size= 58907KiB time=00:03:34.51 bitrate=2249.5kbits/s speed= 1x elapsed=0:03:34.53 frame= 6465 fps= 30 q=-0.0 size= 58925KiB time=00:03:35.00 bitrate=2245.1kbits/s speed= 1x elapsed=0:03:35.03 frame= 6474 fps= 30 q=-0.0 size= 59138KiB time=00:03:35.50 bitrate=2248.1kbits/s speed= 1x elapsed=0:03:35.53 frame= 6501 fps= 30 q=-0.0 size= 59157KiB time=00:03:36.01 bitrate=2243.5kbits/s speed= 1x elapsed=0:03:36.03 frame= 6501 fps= 30 q=-0.0 size= 59370KiB time=00:03:36.50 bitrate=2246.4kbits/s speed= 1x elapsed=0:03:36.53 frame= 6528 fps= 30 q=-0.0 size= 59389KiB time=00:03:37.01 bitrate=2241.8kbits/s speed= 1x elapsed=0:03:37.03 frame= 6532 fps= 30 q=-0.0 size= 59603KiB time=00:03:37.50 bitrate=2244.8kbits/s speed= 1x elapsed=0:03:37.53 frame= 6555 fps= 30 q=-0.0 size= 59620KiB time=00:03:38.01 bitrate=2240.2kbits/s speed= 1x elapsed=0:03:38.03 frame= 6567 fps= 30 q=-0.0 size= 59834KiB time=00:03:38.50 bitrate=2243.2kbits/s speed= 1x elapsed=0:03:38.53 frame= 6581 fps= 30 q=-0.0 size= 59850KiB time=00:03:38.99 bitrate=2238.8kbits/s speed= 1x elapsed=0:03:39.03 frame= 6598 fps= 30 q=-0.0 size= 60066KiB time=00:03:39.51 bitrate=2241.6kbits/s speed= 1x elapsed=0:03:39.53 frame= 6610 fps= 30 q=-0.0 size= 60082KiB time=00:03:40.00 bitrate=2237.2kbits/s speed= 1x elapsed=0:03:40.03 frame= 6632 fps= 30 q=-0.0 size= 60297KiB time=00:03:40.49 bitrate=2240.2kbits/s speed= 1x elapsed=0:03:40.53 frame= 6638 fps= 30 q=-0.0 size= 60314KiB time=00:03:41.00 bitrate=2235.7kbits/s speed= 1x elapsed=0:03:41.03 frame= 6665 fps= 30 q=-0.0 size= 60530KiB time=00:03:41.51 bitrate=2238.5kbits/s speed= 1x elapsed=0:03:41.53 frame= 6666 fps= 30 q=-0.0 size= 60546KiB time=00:03:42.00 bitrate=2234.1kbits/s speed= 1x elapsed=0:03:42.03 frame= 6693 fps= 30 q=-0.0 size= 60762KiB time=00:03:42.51 bitrate=2237.0kbits/s speed= 1x elapsed=0:03:42.53 frame= 6696 fps= 30 q=-0.0 size= 60779KiB time=00:03:43.00 bitrate=2232.7kbits/s speed= 1x elapsed=0:03:43.03 frame= 6720 fps= 30 q=-0.0 size= 60993KiB time=00:03:43.50 bitrate=2235.6kbits/s speed= 1x elapsed=0:03:43.53 frame= 6732 fps= 30 q=-0.0 size= 61011KiB time=00:03:44.01 bitrate=2231.1kbits/s speed= 1x elapsed=0:03:44.03 frame= 6747 fps= 30 q=-0.0 size= 61225KiB time=00:03:44.50 bitrate=2234.1kbits/s speed= 1x elapsed=0:03:44.53 frame= 6768 fps= 30 q=-0.0 size= 61244KiB time=00:03:45.01 bitrate=2229.7kbits/s speed= 1x elapsed=0:03:45.03 frame= 6773 fps= 30 q=-0.0 size= 61458KiB time=00:03:45.50 bitrate=2232.6kbits/s speed= 1x elapsed=0:03:45.53 frame= 6798 fps= 30 q=-0.0 size= 61477KiB time=00:03:46.01 bitrate=2228.2kbits/s speed= 1x elapsed=0:03:46.03 frame= 6802 fps= 30 q=-0.0 size= 61692KiB time=00:03:46.50 bitrate=2231.2kbits/s speed= 1x elapsed=0:03:46.53 frame= 6830 fps= 30 q=-0.0 size= 61710KiB time=00:03:46.99 bitrate=2227.0kbits/s speed= 1x elapsed=0:03:47.03 frame= 6830 fps= 30 q=-0.0 size= 61926KiB time=00:03:47.51 bitrate=2229.7kbits/s speed= 1x elapsed=0:03:47.53 frame= 6858 fps= 30 q=-0.0 size= 61943KiB time=00:03:48.00 bitrate=2225.6kbits/s speed= 1x elapsed=0:03:48.03 frame= 6861 fps= 30 q=-0.0 size= 62160KiB time=00:03:48.51 bitrate=2228.4kbits/s speed= 1x elapsed=0:03:48.53 frame= 6885 fps= 30 q=-0.0 size= 62177KiB time=00:03:49.00 bitrate=2224.2kbits/s speed= 1x elapsed=0:03:49.03 frame= 6896 fps= 30 q=-0.0 size= 62392KiB time=00:03:49.45 bitrate=2227.5kbits/s speed= 1x elapsed=0:03:49.53 frame= 6912 fps= 30 q=-0.0 size= 62496KiB time=00:03:50.00 bitrate=2225.9kbits/s speed= 1x elapsed=0:03:50.03 frame= 6932 fps= 30 q=-0.0 size= 62703KiB time=00:03:50.51 bitrate=2228.3kbits/s speed= 1x elapsed=0:03:50.53 frame= 6939 fps= 30 q=-0.0 size= 62720KiB time=00:03:51.01 bitrate=2224.1kbits/s speed= 1x elapsed=0:03:51.03 frame= 6965 fps= 30 q=-0.0 size= 62994KiB time=00:03:51.50 bitrate=2229.1kbits/s speed= 1x elapsed=0:03:51.53 frame= 6965 fps= 30 q=-0.0 size= 63012KiB time=00:03:52.01 bitrate=2224.8kbits/s speed= 1x elapsed=0:03:52.03 frame= 6994 fps= 30 q=-0.0 size= 63221KiB time=00:03:52.50 bitrate=2227.5kbits/s speed= 1x elapsed=0:03:52.53 frame= 6994 fps= 30 q=-0.0 size= 63238KiB time=00:03:53.01 bitrate=2223.2kbits/s speed= 1x elapsed=0:03:53.03 frame= 7022 fps= 30 q=-0.0 size= 63504KiB time=00:03:53.54 bitrate=2227.5kbits/s speed= 1x elapsed=0:03:53.53 frame= 7025 fps= 30 q=-0.0 size= 63521KiB time=00:03:54.01 bitrate=2223.6kbits/s speed= 1x elapsed=0:03:54.04 frame= 7050 fps= 30 q=-0.0 size= 63787KiB time=00:03:54.51 bitrate=2228.2kbits/s speed= 1x elapsed=0:03:54.54 frame= 7061 fps= 30 q=-0.0 size= 63805KiB time=00:03:55.00 bitrate=2224.2kbits/s speed= 1x elapsed=0:03:55.04 frame= 7077 fps= 30 q=-0.0 size= 64068KiB time=00:03:55.51 bitrate=2228.5kbits/s speed= 1x elapsed=0:03:55.54 frame= 7097 fps= 30 q=-0.0 size= 64096KiB time=00:03:56.00 bitrate=2224.9kbits/s speed= 1x elapsed=0:03:56.04 frame= 7104 fps= 30 q=-0.0 size= 64290KiB time=00:03:56.51 bitrate=2226.8kbits/s speed= 1x elapsed=0:03:56.54 frame= 7131 fps= 30 q=-0.0 size= 64309KiB time=00:03:57.00 bitrate=2222.8kbits/s speed= 1x elapsed=0:03:57.04 frame= 7131 fps= 30 q=-0.0 size= 64503KiB time=00:03:57.51 bitrate=2224.7kbits/s speed= 1x elapsed=0:03:57.54 frame= 7157 fps= 30 q=-0.0 size= 64520KiB time=00:03:58.00 bitrate=2220.7kbits/s speed= 1x elapsed=0:03:58.04 frame= 7158 fps= 30 q=-0.0 size= 64715KiB time=00:03:58.52 bitrate=2222.6kbits/s speed= 1x elapsed=0:03:58.54 frame= 7186 fps= 30 q=-0.0 size= 64732KiB time=00:03:59.01 bitrate=2218.7kbits/s speed= 1x elapsed=0:03:59.04 frame= 7192 fps= 30 q=-0.0 size= 64926KiB time=00:03:59.50 bitrate=2220.8kbits/s speed= 1x elapsed=0:03:59.54 frame= 7214 fps= 30 q=-0.0 size= 64999KiB time=00:04:00.01 bitrate=2218.5kbits/s speed= 1x elapsed=0:04:00.04 frame= 7225 fps= 30 q=-0.0 size= 65188KiB time=00:04:00.46 bitrate=2220.8kbits/s speed= 1x elapsed=0:04:00.54 frame= 7242 fps= 30 q=-0.0 size= 65224KiB time=00:04:01.01 bitrate=2216.9kbits/s speed= 1x elapsed=0:04:01.04 frame= 7262 fps= 30 q=-0.0 size= 65490KiB time=00:04:01.50 bitrate=2221.4kbits/s speed= 1x elapsed=0:04:01.54 frame= 7269 fps= 30 q=-0.0 size= 65512KiB time=00:04:02.01 bitrate=2217.5kbits/s speed= 1x elapsed=0:04:02.04 frame= 7296 fps= 30 q=-0.0 size= 65780KiB time=00:04:02.50 bitrate=2222.1kbits/s speed= 1x elapsed=0:04:02.54 frame= 7296 fps= 30 q=-0.0 size= 65796KiB time=00:04:03.00 bitrate=2218.1kbits/s speed= 1x elapsed=0:04:03.04 frame= 7323 fps= 30 q=-0.0 size= 66059KiB time=00:04:03.51 bitrate=2222.3kbits/s speed= 1x elapsed=0:04:03.54 frame= 7328 fps= 30 q=-0.0 size= 66076KiB time=00:04:04.00 bitrate=2218.4kbits/s speed= 1x elapsed=0:04:04.04 frame= 7349 fps= 30 q=-0.0 size= 66344KiB time=00:04:04.51 bitrate=2222.7kbits/s speed= 1x elapsed=0:04:04.54 frame= 7358 fps= 30 q=-0.0 size= 66360KiB time=00:04:04.96 bitrate=2219.2kbits/s speed= 1x elapsed=0:04:05.04 frame= 7378 fps= 30 q=-0.0 size= 66633KiB time=00:04:05.51 bitrate=2223.3kbits/s speed= 1x elapsed=0:04:05.54 frame= 7393 fps= 30 q=-0.0 size= 66650KiB time=00:04:06.00 bitrate=2219.4kbits/s speed= 1x elapsed=0:04:06.04 frame= 7406 fps= 30 q=-0.0 size= 66854KiB time=00:04:06.52 bitrate=2221.6kbits/s speed= 1x elapsed=0:04:06.54 frame= 7425 fps= 30 q=-0.0 size= 66951KiB time=00:04:07.01 bitrate=2220.4kbits/s speed= 1x elapsed=0:04:07.04 frame= 7434 fps= 30 q=-0.0 size= 67155KiB time=00:04:07.50 bitrate=2222.7kbits/s speed= 1x elapsed=0:04:07.54 frame= 7461 fps= 30 q=-0.0 size= 67181KiB time=00:04:08.01 bitrate=2219.0kbits/s speed= 1x elapsed=0:04:08.04 frame= 7461 fps= 30 q=-0.0 size= 67386KiB time=00:04:08.50 bitrate=2221.4kbits/s speed= 1x elapsed=0:04:08.54 frame= 7488 fps= 30 q=-0.0 size= 67405KiB time=00:04:09.01 bitrate=2217.5kbits/s speed= 1x elapsed=0:04:09.04 frame= 7492 fps= 30 q=-0.0 size= 67609KiB time=00:04:09.50 bitrate=2219.8kbits/s speed= 1x elapsed=0:04:09.54 frame= 7515 fps= 30 q=-0.0 size= 67627KiB time=00:04:10.01 bitrate=2215.8kbits/s speed= 1x elapsed=0:04:10.04 frame= 7527 fps= 30 q=-0.0 size= 67830KiB time=00:04:10.50 bitrate=2218.1kbits/s speed= 1x elapsed=0:04:10.54 frame= 7541 fps= 30 q=-0.0 size= 67849KiB time=00:04:11.00 bitrate=2214.4kbits/s speed= 1x elapsed=0:04:11.04 frame= 7558 fps= 30 q=-0.0 size= 68055KiB time=00:04:11.51 bitrate=2216.6kbits/s speed= 1x elapsed=0:04:11.54 frame= 7570 fps= 30 q=-0.0 size= 68071KiB time=00:04:12.00 bitrate=2212.8kbits/s speed= 1x elapsed=0:04:12.04 frame= 7592 fps= 30 q=-0.0 size= 68276KiB time=00:04:12.51 bitrate=2215.0kbits/s speed= 1x elapsed=0:04:12.54 frame= 7598 fps= 30 q=-0.0 size= 68293KiB time=00:04:13.00 bitrate=2211.2kbits/s speed= 1x elapsed=0:04:13.04 frame= 7625 fps= 30 q=-0.0 size= 68499KiB time=00:04:13.51 bitrate=2213.4kbits/s speed= 1x elapsed=0:04:13.54 frame= 7626 fps= 30 q=-0.0 size= 68515KiB time=00:04:14.00 bitrate=2209.7kbits/s speed= 1x elapsed=0:04:14.04 frame= 7653 fps= 30 q=-0.0 size= 68722KiB time=00:04:14.52 bitrate=2211.9kbits/s speed= 1x elapsed=0:04:14.54 frame= 7657 fps= 30 q=-0.0 size= 68739KiB time=00:04:15.01 bitrate=2208.2kbits/s speed= 1x elapsed=0:04:15.04 frame= 7680 fps= 30 q=-0.0 size= 68944KiB time=00:04:15.50 bitrate=2210.5kbits/s speed= 1x elapsed=0:04:15.54 frame= 7691 fps= 30 q=-0.0 size= 68961KiB time=00:04:15.97 bitrate=2207.0kbits/s speed= 1x elapsed=0:04:16.04 frame= 7707 fps= 30 q=-0.0 size= 69168KiB time=00:04:16.50 bitrate=2209.0kbits/s speed= 1x elapsed=0:04:16.54 frame= 7727 fps= 30 q=-0.0 size= 69187KiB time=00:04:17.01 bitrate=2205.2kbits/s speed= 1x elapsed=0:04:17.04 frame= 7733 fps= 30 q=-0.0 size= 69392KiB time=00:04:17.50 bitrate=2207.5kbits/s speed= 1x elapsed=0:04:17.54 frame= 7758 fps= 30 q=-0.0 size= 69410KiB time=00:04:18.01 bitrate=2203.7kbits/s speed= 1x elapsed=0:04:18.04 frame= 7762 fps= 30 q=-0.0 size= 69617KiB time=00:04:18.55 bitrate=2205.8kbits/s speed= 1x elapsed=0:04:18.54 frame= 7790 fps= 30 q=-0.0 size= 69634KiB time=00:04:18.99 bitrate=2202.5kbits/s speed= 1x elapsed=0:04:19.04 frame= 7790 fps= 30 q=-0.0 size= 69840KiB time=00:04:19.51 bitrate=2204.6kbits/s speed= 1x elapsed=0:04:19.54 frame= 7818 fps= 30 q=-0.0 size= 69857KiB time=00:04:20.00 bitrate=2201.0kbits/s speed= 1x elapsed=0:04:20.04 frame= 7821 fps= 30 q=-0.0 size= 70065KiB time=00:04:20.51 bitrate=2203.2kbits/s speed= 1x elapsed=0:04:20.54 frame= 7845 fps= 30 q=-0.0 size= 70081KiB time=00:04:21.00 bitrate=2199.6kbits/s speed= 1x elapsed=0:04:21.04 frame= 7857 fps= 30 q=-0.0 size= 70289KiB time=00:04:21.51 bitrate=2201.8kbits/s speed= 1x elapsed=0:04:21.54 frame= 7872 fps= 30 q=-0.0 size= 70492KiB time=00:04:22.05 bitrate=2203.6kbits/s speed= 1x elapsed=0:04:22.04 frame= 7892 fps= 30 q=-0.0 size= 70515KiB time=00:04:22.52 bitrate=2200.4kbits/s speed= 1x elapsed=0:04:22.54 frame= 7899 fps= 30 q=-0.0 size= 70532KiB time=00:04:23.01 bitrate=2196.8kbits/s speed= 1x elapsed=0:04:23.04 frame= 7925 fps= 30 q=-0.0 size= 70740KiB time=00:04:23.50 bitrate=2199.2kbits/s speed= 1x elapsed=0:04:23.54 frame= 7925 fps= 30 q=-0.0 size= 70757KiB time=00:04:24.01 bitrate=2195.5kbits/s speed= 1x elapsed=0:04:24.04 frame= 7954 fps= 30 q=-0.0 size= 70965KiB time=00:04:24.50 bitrate=2197.9kbits/s speed= 1x elapsed=0:04:24.54 frame= 7954 fps= 30 q=-0.0 size= 70983KiB time=00:04:25.01 bitrate=2194.2kbits/s speed= 1x elapsed=0:04:25.04 frame= 7982 fps= 30 q=-0.0 size= 71192KiB time=00:04:25.57 bitrate=2196.0kbits/s speed= 1x elapsed=0:04:25.54 frame= 7985 fps= 30 q=-0.0 size= 71209KiB time=00:04:26.02 bitrate=2192.8kbits/s speed= 1x elapsed=0:04:26.04 frame= 8010 fps= 30 q=-0.0 size= 71416KiB time=00:04:26.51 bitrate=2195.2kbits/s speed= 1x elapsed=0:04:26.54 frame= 8022 fps= 30 q=-0.0 size= 71434KiB time=00:04:27.00 bitrate=2191.7kbits/s speed= 1x elapsed=0:04:27.04 frame= 8037 fps= 30 q=-0.0 size= 71642KiB time=00:04:27.51 bitrate=2193.9kbits/s speed= 1x elapsed=0:04:27.54 frame= 8057 fps= 30 q=-0.0 size= 71660KiB time=00:04:28.00 bitrate=2190.4kbits/s speed= 1x elapsed=0:04:28.04 frame= 8064 fps= 30 q=-0.0 size= 71869KiB time=00:04:28.51 bitrate=2192.6kbits/s speed= 1x elapsed=0:04:28.54 frame= 8091 fps= 30 q=-0.0 size= 71887KiB time=00:04:29.00 bitrate=2189.1kbits/s speed= 1x elapsed=0:04:29.04 frame= 8091 fps= 30 q=-0.0 size= 72095KiB time=00:04:29.51 bitrate=2191.3kbits/s speed= 1x elapsed=0:04:29.54 frame= 8117 fps= 30 q=-0.0 size= 72113KiB time=00:04:30.00 bitrate=2187.9kbits/s speed= 1x elapsed=0:04:30.04 frame= 8119 fps= 30 q=-0.0 size= 72322KiB time=00:04:30.52 bitrate=2190.1kbits/s speed= 1x elapsed=0:04:30.54 frame= 8146 fps= 30 q=-0.0 size= 72527KiB time=00:04:31.05 bitrate=2192.0kbits/s speed= 1x elapsed=0:04:31.04 frame= 8153 fps= 30 q=-0.0 size= 72549KiB time=00:04:31.50 bitrate=2189.0kbits/s speed= 1x elapsed=0:04:31.54 frame= 8174 fps= 30 q=-0.0 size= 72566KiB time=00:04:32.01 bitrate=2185.4kbits/s speed= 1x elapsed=0:04:32.04 frame= 8185 fps= 30 q=-0.0 size= 72776KiB time=00:04:32.50 bitrate=2187.8kbits/s speed= 1x elapsed=0:04:32.54 frame= 8202 fps= 30 q=-0.0 size= 72793KiB time=00:04:33.01 bitrate=2184.2kbits/s speed= 1x elapsed=0:04:33.04 frame= 8222 fps= 30 q=-0.0 size= 73001KiB time=00:04:33.50 bitrate=2186.5kbits/s speed= 1x elapsed=0:04:33.54 frame= 8229 fps= 30 q=-0.0 size= 73098KiB time=00:04:34.02 bitrate=2185.3kbits/s speed= 1x elapsed=0:04:34.04 frame= 8256 fps= 30 q=-0.0 size= 73299KiB time=00:04:34.55 bitrate=2187.1kbits/s speed= 1x elapsed=0:04:34.54 frame= 8256 fps= 30 q=-0.0 size= 73315KiB time=00:04:35.00 bitrate=2184.0kbits/s speed= 1x elapsed=0:04:35.04 frame= 8283 fps= 30 q=-0.0 size= 73517KiB time=00:04:35.51 bitrate=2185.9kbits/s speed= 1x elapsed=0:04:35.54 frame= 8288 fps= 30 q=-0.0 size= 73534KiB time=00:04:36.00 bitrate=2182.5kbits/s speed= 1x elapsed=0:04:36.04 frame= 8309 fps= 30 q=-0.0 size= 73805KiB time=00:04:36.51 bitrate=2186.5kbits/s speed= 1x elapsed=0:04:36.54 frame= 8318 fps= 30 q=-0.0 size= 73823KiB time=00:04:37.00 bitrate=2183.2kbits/s speed= 1x elapsed=0:04:37.04 frame= 8338 fps= 30 q=-0.0 size= 74086KiB time=00:04:37.51 bitrate=2186.9kbits/s speed= 1x elapsed=0:04:37.54 frame= 8353 fps= 30 q=-0.0 size= 74279KiB time=00:04:38.05 bitrate=2188.4kbits/s speed= 1x elapsed=0:04:38.04 frame= 8366 fps= 30 q=-0.0 size= 74303KiB time=00:04:38.52 bitrate=2185.4kbits/s speed= 1x elapsed=0:04:38.54 frame= 8386 fps= 30 q=-0.0 size= 74395KiB time=00:04:39.01 bitrate=2184.3kbits/s speed= 1x elapsed=0:04:39.04 frame= 8394 fps= 30 q=-0.0 size= 74596KiB time=00:04:39.50 bitrate=2186.3kbits/s speed= 1x elapsed=0:04:39.54 frame= 8421 fps= 30 q=-0.0 size= 74691KiB time=00:04:40.01 bitrate=2185.1kbits/s speed= 1x elapsed=0:04:40.04 frame= 8421 fps= 30 q=-0.0 size= 74894KiB time=00:04:40.50 bitrate=2187.2kbits/s speed= 1x elapsed=0:04:40.54 frame= 8448 fps= 30 q=-0.0 size= 74933KiB time=00:04:41.01 bitrate=2184.4kbits/s speed= 1x elapsed=0:04:41.04 frame= 8452 fps= 30 q=-0.0 size= 75140KiB time=00:04:41.50 bitrate=2186.6kbits/s speed= 1x elapsed=0:04:41.54 frame= 8475 fps= 30 q=-0.0 size= 75158KiB time=00:04:42.02 bitrate=2183.1kbits/s speed= 1x elapsed=0:04:42.04 frame= 8487 fps= 30 q=-0.0 size= 75364KiB time=00:04:42.51 bitrate=2185.3kbits/s speed= 1x elapsed=0:04:42.54 frame= 8501 fps= 30 q=-0.0 size= 75381KiB time=00:04:43.00 bitrate=2182.0kbits/s speed= 1x elapsed=0:04:43.04 frame= 8518 fps= 30 q=-0.0 size= 75589KiB time=00:04:43.51 bitrate=2184.1kbits/s speed= 1x elapsed=0:04:43.54 frame= 8530 fps= 30 q=-0.0 size= 75605KiB time=00:04:44.00 bitrate=2180.8kbits/s speed= 1x elapsed=0:04:44.04 frame= 8552 fps= 30 q=-0.0 size= 75890KiB time=00:04:44.51 bitrate=2185.1kbits/s speed= 1x elapsed=0:04:44.54 frame= 8558 fps= 30 q=-0.0 size= 75907KiB time=00:04:45.00 bitrate=2181.8kbits/s speed= 1x elapsed=0:04:45.04 frame= 8586 fps= 30 q=-0.0 size= 76187KiB time=00:04:45.51 bitrate=2185.9kbits/s speed= 1x elapsed=0:04:45.54 frame= 8586 fps= 30 q=-0.0 size= 76204KiB time=00:04:46.01 bitrate=2182.7kbits/s speed= 1x elapsed=0:04:46.04 frame= 8613 fps= 30 q=-0.0 size= 76402KiB time=00:04:46.52 bitrate=2184.4kbits/s speed= 1x elapsed=0:04:46.54 frame= 8617 fps= 30 q=-0.0 size= 76594KiB time=00:04:47.05 bitrate=2185.9kbits/s speed= 1x elapsed=0:04:47.04 frame= 8640 fps= 30 q=-0.0 size= 76633KiB time=00:04:47.50 bitrate=2183.5kbits/s speed= 1x elapsed=0:04:47.54 frame= 8652 fps= 30 q=-0.0 size= 76651KiB time=00:04:48.01 bitrate=2180.2kbits/s speed= 1x elapsed=0:04:48.04 frame= 8667 fps= 30 q=-0.0 size= 76848KiB time=00:04:48.50 bitrate=2182.1kbits/s speed= 1x elapsed=0:04:48.54 frame= 8688 fps= 30 q=-0.0 size= 76867KiB time=00:04:49.01 bitrate=2178.7kbits/s speed= 1x elapsed=0:04:49.04 frame= 8694 fps= 30 q=-0.0 size= 77062KiB time=00:04:49.50 bitrate=2180.6kbits/s speed= 1x elapsed=0:04:49.54 frame= 8720 fps= 30 q=-0.0 size= 77080KiB time=00:04:50.02 bitrate=2177.2kbits/s speed= 1x elapsed=0:04:50.04 frame= 8722 fps= 30 q=-0.0 size= 77277KiB time=00:04:50.55 bitrate=2178.8kbits/s speed= 1x elapsed=0:04:50.54 frame= 8750 fps= 30 q=-0.0 size= 77293KiB time=00:04:51.00 bitrate=2175.9kbits/s speed= 1x elapsed=0:04:51.05 frame= 8750 fps= 30 q=-0.0 size= 77489KiB time=00:04:51.51 bitrate=2177.6kbits/s speed= 1x elapsed=0:04:51.55 frame= 8778 fps= 30 q=-0.0 size= 77506KiB time=00:04:52.00 bitrate=2174.4kbits/s speed= 1x elapsed=0:04:52.05 frame= 8782 fps= 30 q=-0.0 size= 77703KiB time=00:04:52.51 bitrate=2176.1kbits/s speed= 1x elapsed=0:04:52.55 frame= 8805 fps= 30 q=-0.0 size= 77720KiB time=00:04:53.00 bitrate=2172.9kbits/s speed= 1x elapsed=0:04:53.05 frame= 8817 fps= 30 q=-0.0 size= 77917KiB time=00:04:53.52 bitrate=2174.6kbits/s speed= 1x elapsed=0:04:53.55 frame= 8832 fps= 30 q=-0.0 size= 78110KiB time=00:04:54.05 bitrate=2176.1kbits/s speed= 1x elapsed=0:04:54.05 frame= 8853 fps= 30 q=-0.0 size= 78134KiB time=00:04:54.52 bitrate=2173.3kbits/s speed= 1x elapsed=0:04:54.55 frame= 8859 fps= 30 q=-0.0 size= 78150KiB time=00:04:55.01 bitrate=2170.1kbits/s speed= 1x elapsed=0:04:55.05 frame= 8886 fps= 30 q=-0.0 size= 78347KiB time=00:04:55.50 bitrate=2172.0kbits/s speed= 1x elapsed=0:04:55.55 frame= 8886 fps= 30 q=-0.0 size= 78539KiB time=00:04:56.05 bitrate=2173.2kbits/s speed= 1x elapsed=0:04:56.05 frame= 8914 fps= 30 q=-0.0 size= 78561KiB time=00:04:56.50 bitrate=2170.5kbits/s speed= 1x elapsed=0:04:56.55 frame= 8914 fps= 30 q=-0.0 size= 78579KiB time=00:04:57.01 bitrate=2167.3kbits/s speed= 1x elapsed=0:04:57.05 frame= 8942 fps= 30 q=-0.0 size= 78778KiB time=00:04:57.57 bitrate=2168.7kbits/s speed= 1x elapsed=0:04:57.55 frame= 8946 fps= 30 q=-0.0 size= 78794KiB time=00:04:58.02 bitrate=2165.9kbits/s speed= 1x elapsed=0:04:58.05 frame= 8970 fps= 30 q=-0.0 size= 78991KiB time=00:04:58.51 bitrate=2167.7kbits/s speed= 1x elapsed=0:04:58.55 frame= 8982 fps= 30 q=-0.0 size= 79008KiB time=00:04:59.00 bitrate=2164.6kbits/s speed= 1x elapsed=0:04:59.05 frame= 8997 fps= 30 q=-0.0 size= 79207KiB time=00:04:59.55 bitrate=2166.1kbits/s speed= 1x elapsed=0:04:59.55 frame= 9018 fps= 30 q=-0.0 size= 79224KiB time=00:05:00.00 bitrate=2163.3kbits/s speed= 1x elapsed=0:05:00.05 frame= 9024 fps= 30 q=-0.0 size= 79422KiB time=00:05:00.51 bitrate=2165.0kbits/s speed= 1x elapsed=0:05:00.55 frame= 9051 fps= 30 q=-0.0 size= 79440KiB time=00:05:01.00 bitrate=2162.0kbits/s speed= 1x elapsed=0:05:01.05 frame= 9051 fps= 30 q=-0.0 size= 79638KiB time=00:05:01.51 bitrate=2163.7kbits/s speed= 1x elapsed=0:05:01.55 frame= 9078 fps= 30 q=-0.0 size= 79655KiB time=00:05:02.01 bitrate=2160.6kbits/s speed= 1x elapsed=0:05:02.05 frame= 9080 fps= 30 q=-0.0 size= 79855KiB time=00:05:02.52 bitrate=2162.4kbits/s speed= 1x elapsed=0:05:02.55 frame= 9106 fps= 30 q=-0.0 size= 80048KiB time=00:05:03.05 bitrate=2163.8kbits/s speed= 1x elapsed=0:05:03.05 frame= 9113 fps= 30 q=-0.0 size= 80070KiB time=00:05:03.50 bitrate=2161.2kbits/s speed= 1x elapsed=0:05:03.55 frame= 9134 fps= 30 q=-0.0 size= 80088KiB time=00:05:04.01 bitrate=2158.0kbits/s speed= 1x elapsed=0:05:04.05 frame= 9146 fps= 30 q=-0.0 size= 80287KiB time=00:05:04.50 bitrate=2159.9kbits/s speed= 1x elapsed=0:05:04.55 frame= 9162 fps= 30 q=-0.0 size= 80481KiB time=00:05:05.06 bitrate=2161.2kbits/s speed= 1x elapsed=0:05:05.05 frame= 9182 fps= 30 q=-0.0 size= 80504KiB time=00:05:05.50 bitrate=2158.6kbits/s speed= 1x elapsed=0:05:05.55 frame= 9189 fps= 30 q=-0.0 size= 80521KiB time=00:05:06.02 bitrate=2155.5kbits/s speed= 1x elapsed=0:05:06.05 frame= 9216 fps= 30 q=-0.0 size= 80721KiB time=00:05:06.55 bitrate=2157.1kbits/s speed= 1x elapsed=0:05:06.55 frame= 9216 fps= 30 q=-0.0 size= 80736KiB time=00:05:07.00 bitrate=2154.4kbits/s speed= 1x elapsed=0:05:07.05 frame= 9243 fps= 30 q=-0.0 size= 80937KiB time=00:05:07.51 bitrate=2156.1kbits/s speed= 1x elapsed=0:05:07.55 frame= 9248 fps= 30 q=-0.0 size= 80954KiB time=00:05:08.00 bitrate=2153.1kbits/s speed= 1x elapsed=0:05:08.05 frame= 9270 fps= 30 q=-0.0 size= 81155KiB time=00:05:08.56 bitrate=2154.6kbits/s speed= 1x elapsed=0:05:08.55 frame= 9280 fps= 30 q=-0.0 size= 81171KiB time=00:05:09.00 bitrate=2151.9kbits/s speed= 1x elapsed=0:05:09.05 frame= 9298 fps= 30 q=-0.0 size= 81370KiB time=00:05:09.52 bitrate=2153.6kbits/s speed= 1x elapsed=0:05:09.55 frame= 9313 fps= 30 q=-0.0 size= 81387KiB time=00:05:10.01 bitrate=2150.6kbits/s speed= 1x elapsed=0:05:10.05 frame= 9326 fps= 30 q=-0.0 size= 81587KiB time=00:05:10.52 bitrate=2152.4kbits/s speed= 1x elapsed=0:05:10.55 frame= 9346 fps= 30 q=-0.0 size= 81605KiB time=00:05:11.01 bitrate=2149.4kbits/s speed= 1x elapsed=0:05:11.05 frame= 9354 fps= 30 q=-0.0 size= 81804KiB time=00:05:11.50 bitrate=2151.3kbits/s speed= 1x elapsed=0:05:11.55 frame= 9381 fps= 30 q=-0.0 size= 82000KiB time=00:05:12.05 bitrate=2152.6kbits/s speed= 1x elapsed=0:05:12.05 frame= 9381 fps= 30 q=-0.0 size= 82021KiB time=00:05:12.50 bitrate=2150.1kbits/s speed= 1x elapsed=0:05:12.55 frame= 9408 fps= 30 q=-0.0 size= 82040KiB time=00:05:13.01 bitrate=2147.1kbits/s speed= 1x elapsed=0:05:13.05 frame= 9413 fps= 30 q=-0.0 size= 82242KiB time=00:05:13.57 bitrate=2148.6kbits/s speed= 1x elapsed=0:05:13.55 frame= 9435 fps= 30 q=-0.0 size= 82258KiB time=00:05:14.02 bitrate=2145.9kbits/s speed= 1x elapsed=0:05:14.05 frame= 9448 fps= 30 q=-0.0 size= 82458KiB time=00:05:14.51 bitrate=2147.8kbits/s speed= 1x elapsed=0:05:14.55 frame= 9462 fps= 30 q=-0.0 size= 82475KiB time=00:05:15.00 bitrate=2144.9kbits/s speed= 1x elapsed=0:05:15.05 frame= 9480 fps= 30 q=-0.0 size= 82679KiB time=00:05:15.55 bitrate=2146.4kbits/s speed= 1x elapsed=0:05:15.55 frame= 9490 fps= 30 q=-0.0 size= 82694KiB time=00:05:16.00 bitrate=2143.7kbits/s speed= 1x elapsed=0:05:16.05 frame= 9513 fps= 30 q=-0.0 size= 82896KiB time=00:05:16.51 bitrate=2145.5kbits/s speed= 1x elapsed=0:05:16.55 frame= 9518 fps= 30 q=-0.0 size= 82912KiB time=00:05:17.00 bitrate=2142.6kbits/s speed= 1x elapsed=0:05:17.05 frame= 9546 fps= 30 q=-0.0 size= 83116KiB time=00:05:17.56 bitrate=2144.1kbits/s speed= 1x elapsed=0:05:17.55 frame= 9546 fps= 30 q=-0.0 size= 83132KiB time=00:05:18.01 bitrate=2141.5kbits/s speed= 1x elapsed=0:05:18.05 frame= 9573 fps= 30 q=-0.0 size= 83406KiB time=00:05:18.52 bitrate=2145.1kbits/s speed= 1x elapsed=0:05:18.55 frame= 9577 fps= 30 q=-0.0 size= 83424KiB time=00:05:19.01 bitrate=2142.3kbits/s speed= 1x elapsed=0:05:19.05 frame= 9600 fps= 30 q=-0.0 size= 83619KiB time=00:05:19.50 bitrate=2144.0kbits/s speed= 1x elapsed=0:05:19.55 frame= 9612 fps= 30 q=-0.0 size= 83637KiB time=00:05:20.01 bitrate=2141.0kbits/s speed= 1x elapsed=0:05:20.05 frame= 9627 fps= 30 q=-0.0 size= 84074KiB time=00:05:20.50 bitrate=2148.9kbits/s speed= 1x elapsed=0:05:20.55 frame= 9648 fps= 30 q=-0.0 size= 84102KiB time=00:05:21.01 bitrate=2146.2kbits/s speed= 1x elapsed=0:05:21.05 frame= 9654 fps= 30 q=-0.0 size= 84363KiB time=00:05:21.51 bitrate=2149.5kbits/s speed= 1x elapsed=0:05:21.55 frame= 9680 fps= 30 q=-0.0 size= 84615KiB time=00:05:22.02 bitrate=2152.5kbits/s speed= 1x elapsed=0:05:22.05 frame= 9682 fps= 30 q=-0.0 size= 84642KiB time=00:05:22.55 bitrate=2149.6kbits/s speed= 1x elapsed=0:05:22.55 frame= 9710 fps= 30 q=-0.0 size= 84657KiB time=00:05:23.00 bitrate=2147.1kbits/s speed= 1x elapsed=0:05:23.05 frame= 9710 fps= 30 q=-0.0 size= 84918KiB time=00:05:23.51 bitrate=2150.3kbits/s speed= 1x elapsed=0:05:23.55 frame= 9738 fps= 30 q=-0.0 size= 84933KiB time=00:05:24.00 bitrate=2147.4kbits/s speed= 1x elapsed=0:05:24.05 frame= 9742 fps= 30 q=-0.0 size= 85196KiB time=00:05:24.51 bitrate=2150.6kbits/s speed= 1x elapsed=0:05:24.55 frame= 9765 fps= 30 q=-0.0 size= 85212KiB time=00:05:25.00 bitrate=2147.8kbits/s speed= 1x elapsed=0:05:25.05 frame= 9777 fps= 30 q=-0.0 size= 85473KiB time=00:05:25.52 bitrate=2151.0kbits/s speed= 1x elapsed=0:05:25.55 frame= 9792 fps= 30 q=-0.0 size= 85725KiB time=00:05:26.05 bitrate=2153.8kbits/s speed= 1x elapsed=0:05:26.05 frame= 9812 fps= 30 q=-0.0 size= 85752KiB time=00:05:26.52 bitrate=2151.4kbits/s speed= 1x elapsed=0:05:26.55 frame= 9819 fps= 30 q=-0.0 size= 85766KiB time=00:05:27.01 bitrate=2148.5kbits/s speed= 1x elapsed=0:05:27.05 frame= 9846 fps= 30 q=-0.0 size= 86028KiB time=00:05:27.50 bitrate=2151.9kbits/s speed= 1x elapsed=0:05:27.55 frame= 9846 fps= 30 q=-0.0 size= 86280KiB time=00:05:28.05 bitrate=2154.5kbits/s speed= 1x elapsed=0:05:28.05 frame= 9874 fps= 30 q=-0.0 size= 86304KiB time=00:05:28.50 bitrate=2152.2kbits/s speed= 1x elapsed=0:05:28.55 frame= 9874 fps= 30 q=-0.0 size= 86321KiB time=00:05:29.02 bitrate=2149.2kbits/s speed= 1x elapsed=0:05:29.05 frame= 9902 fps= 30 q=-0.0 size= 86584KiB time=00:05:29.57 bitrate=2152.2kbits/s speed= 1x elapsed=0:05:29.55 frame= 9906 fps= 30 q=-0.0 size= 86835KiB time=00:05:30.06 bitrate=2155.2kbits/s speed= 1x elapsed=0:05:30.05 frame= 9930 fps= 30 q=-0.0 size= 86861KiB time=00:05:30.51 bitrate=2152.9kbits/s speed= 1x elapsed=0:05:30.55 frame= 9942 fps= 30 q=-0.0 size= 86877KiB time=00:05:31.00 bitrate=2150.1kbits/s speed= 1x elapsed=0:05:31.05 frame= 9957 fps= 30 q=-0.0 size= 87152KiB time=00:05:31.55 bitrate=2153.3kbits/s speed= 1x elapsed=0:05:31.55 frame= 9978 fps= 30 q=-0.0 size= 87167KiB time=00:05:32.00 bitrate=2150.8kbits/s speed= 1x elapsed=0:05:32.05 frame= 9984 fps= 30 q=-0.0 size= 87428KiB time=00:05:32.51 bitrate=2153.9kbits/s speed= 1x elapsed=0:05:32.55 frame=10011 fps= 30 q=-0.0 size= 87444KiB time=00:05:33.00 bitrate=2151.1kbits/s speed= 1x elapsed=0:05:33.05 frame=10011 fps= 30 q=-0.0 size= 87707KiB time=00:05:33.56 bitrate=2154.0kbits/s speed= 1x elapsed=0:05:33.55 frame=10038 fps= 30 q=-0.0 size= 87722KiB time=00:05:34.01 bitrate=2151.5kbits/s speed= 1x elapsed=0:05:34.05 frame=10040 fps= 30 q=-0.0 size= 87984KiB time=00:05:34.52 bitrate=2154.6kbits/s speed= 1x elapsed=0:05:34.55 frame=10066 fps= 30 q=-0.0 size= 88236KiB time=00:05:35.05 bitrate=2157.3kbits/s speed= 1x elapsed=0:05:35.05 frame=10073 fps= 30 q=-0.0 size= 88261KiB time=00:05:35.50 bitrate=2155.1kbits/s speed= 1x elapsed=0:05:35.55 frame=10094 fps= 30 q=-0.0 size= 88277KiB time=00:05:36.01 bitrate=2152.2kbits/s speed= 1x elapsed=0:05:36.05 frame=10106 fps= 30 q=-0.0 size= 88539KiB time=00:05:36.50 bitrate=2155.4kbits/s speed= 1x elapsed=0:05:36.55 frame=10122 fps= 30 q=-0.0 size= 88791KiB time=00:05:37.06 bitrate=2158.0kbits/s speed= 1x elapsed=0:05:37.05 frame=10142 fps= 30 q=-0.0 size= 88817KiB time=00:05:37.51 bitrate=2155.7kbits/s speed= 1x elapsed=0:05:37.55 frame=10149 fps= 30 q=-0.0 size= 88832KiB time=00:05:38.02 bitrate=2152.9kbits/s speed= 1x elapsed=0:05:38.05 frame=10176 fps= 30 q=-0.0 size= 89095KiB time=00:05:38.55 bitrate=2155.8kbits/s speed= 1x elapsed=0:05:38.55 frame=10176 fps= 30 q=-0.0 size= 89110KiB time=00:05:39.02 bitrate=2153.2kbits/s speed= 1x elapsed=0:05:39.05 frame=10203 fps= 30 q=-0.0 size= 89371KiB time=00:05:39.51 bitrate=2156.4kbits/s speed= 1x elapsed=0:05:39.55 frame=10208 fps= 30 q=-0.0 size= 89387KiB time=00:05:40.00 bitrate=2153.7kbits/s speed= 1x elapsed=0:05:40.05 frame=10230 fps= 30 q=-0.0 size= 89650KiB time=00:05:40.56 bitrate=2156.5kbits/s speed= 1x elapsed=0:05:40.55 frame=10240 fps= 30 q=-0.0 size= 89665KiB time=00:05:41.01 bitrate=2154.0kbits/s speed= 1x elapsed=0:05:41.05 frame=10258 fps= 30 q=-0.0 size= 89940KiB time=00:05:41.52 bitrate=2157.4kbits/s speed= 1x elapsed=0:05:41.55 frame=10273 fps= 30 q=-0.0 size= 90192KiB time=00:05:42.05 bitrate=2160.0kbits/s speed= 1x elapsed=0:05:42.05 frame=10286 fps= 30 q=-0.0 size= 90218KiB time=00:05:42.56 bitrate=2157.4kbits/s speed= 1x elapsed=0:05:42.55 frame=10305 fps= 30 q=-0.0 size= 90233KiB time=00:05:43.01 bitrate=2155.0kbits/s speed= 1x elapsed=0:05:43.05 frame=10314 fps= 30 q=-0.0 size= 90494KiB time=00:05:43.50 bitrate=2158.1kbits/s speed= 1x elapsed=0:05:43.55 frame=10341 fps= 30 q=-0.0 size= 90747KiB time=00:05:44.06 bitrate=2160.7kbits/s speed= 1x elapsed=0:05:44.05 frame=10341 fps= 30 q=-0.0 size= 90772KiB time=00:05:44.50 bitrate=2158.4kbits/s speed= 1x elapsed=0:05:44.55 frame=10368 fps= 30 q=-0.0 size= 90788KiB time=00:05:45.02 bitrate=2155.6kbits/s speed= 1x elapsed=0:05:45.05 frame=10373 fps= 30 q=-0.0 size= 91052KiB time=00:05:45.57 bitrate=2158.4kbits/s speed= 1x elapsed=0:05:45.55 frame=10395 fps= 30 q=-0.0 size= 91303KiB time=00:05:46.06 bitrate=2161.3kbits/s speed= 1x elapsed=0:05:46.05 frame=10408 fps= 30 q=-0.0 size= 91328KiB time=00:05:46.51 bitrate=2159.1kbits/s speed= 1x elapsed=0:05:46.55 frame=10422 fps= 30 q=-0.0 size= 91343KiB time=00:05:47.00 bitrate=2156.4kbits/s speed= 1x elapsed=0:05:47.05 frame=10440 fps= 30 q=-0.0 size= 91607KiB time=00:05:47.55 bitrate=2159.2kbits/s speed= 1x elapsed=0:05:47.55 frame=10450 fps= 30 q=-0.0 size= 91621KiB time=00:05:48.00 bitrate=2156.7kbits/s speed= 1x elapsed=0:05:48.06 frame=10473 fps= 30 q=-0.0 size= 91884KiB time=00:05:48.51 bitrate=2159.7kbits/s speed= 1x elapsed=0:05:48.56 frame=10478 fps= 30 q=-0.0 size= 91899KiB time=00:05:49.01 bitrate=2157.1kbits/s speed= 1x elapsed=0:05:49.06 frame=10506 fps= 30 q=-0.0 size= 92163KiB time=00:05:49.56 bitrate=2159.8kbits/s speed= 1x elapsed=0:05:49.56 frame=10506 fps= 30 q=-0.0 size= 92178KiB time=00:05:50.01 bitrate=2157.4kbits/s speed= 1x elapsed=0:05:50.06 frame=10533 fps= 30 q=-0.0 size= 92452KiB time=00:05:50.52 bitrate=2160.7kbits/s speed= 1x elapsed=0:05:50.56 frame=10538 fps= 30 q=-0.0 size= 92716KiB time=00:05:51.05 bitrate=2163.5kbits/s speed= 1x elapsed=0:05:51.06 frame=10560 fps= 30 q=-0.0 size= 92739KiB time=00:05:51.52 bitrate=2161.2kbits/s speed= 1x elapsed=0:05:51.56 frame=10573 fps= 30 q=-0.0 size= 92755KiB time=00:05:52.01 bitrate=2158.5kbits/s speed= 1x elapsed=0:05:52.06 frame=10587 fps= 30 q=-0.0 size= 93016KiB time=00:05:52.50 bitrate=2161.6kbits/s speed= 1x elapsed=0:05:52.56 frame=10608 fps= 30 q=-0.0 size= 93270KiB time=00:05:53.06 bitrate=2164.1kbits/s speed= 1x elapsed=0:05:53.06 frame=10614 fps= 30 q=-0.0 size= 93295KiB time=00:05:53.51 bitrate=2161.9kbits/s speed= 1x elapsed=0:05:53.56 frame=10640 fps= 30 q=-0.0 size= 93547KiB time=00:05:54.02 bitrate=2164.7kbits/s speed= 1x elapsed=0:05:54.06 frame=10642 fps= 30 q=-0.0 size= 93574KiB time=00:05:54.55 bitrate=2162.0kbits/s speed= 1x elapsed=0:05:54.56 frame=10670 fps= 30 q=-0.0 size= 93826KiB time=00:05:55.06 bitrate=2164.7kbits/s speed= 1x elapsed=0:05:55.06 frame=10670 fps= 30 q=-0.0 size= 93851KiB time=00:05:55.51 bitrate=2162.6kbits/s speed= 1x elapsed=0:05:55.56 frame=10698 fps= 30 q=-0.0 size= 93866KiB time=00:05:56.00 bitrate=2159.9kbits/s speed= 1x elapsed=0:05:56.06 frame=10703 fps= 30 q=-0.0 size= 94130KiB time=00:05:56.51 bitrate=2162.9kbits/s speed= 1x elapsed=0:05:56.56 frame=10725 fps= 30 q=-0.0 size= 94145KiB time=00:05:57.00 bitrate=2160.3kbits/s speed= 1x elapsed=0:05:57.06 frame=10738 fps= 30 q=-0.0 size= 94408KiB time=00:05:57.52 bitrate=2163.2kbits/s speed= 1x elapsed=0:05:57.56 frame=10752 fps= 30 q=-0.0 size= 94660KiB time=00:05:58.05 bitrate=2165.7kbits/s speed= 1x elapsed=0:05:58.06 frame=10773 fps= 30 q=-0.0 size= 94687KiB time=00:05:58.52 bitrate=2163.5kbits/s speed= 1x elapsed=0:05:58.56 frame=10779 fps= 30 q=-0.0 size= 94702KiB time=00:05:59.01 bitrate=2160.9kbits/s speed= 1x elapsed=0:05:59.06 frame=10806 fps= 30 q=-0.0 size= 94964KiB time=00:05:59.50 bitrate=2163.9kbits/s speed= 1x elapsed=0:05:59.56 frame=10806 fps= 30 q=-0.0 size= 95217KiB time=00:06:00.06 bitrate=2166.3kbits/s speed= 1x elapsed=0:06:00.06 frame=10834 fps= 30 q=-0.0 size= 95254KiB time=00:06:00.50 bitrate=2164.5kbits/s speed= 1x elapsed=0:06:00.56 frame=10834 fps= 30 q=-0.0 size= 95270KiB time=00:06:01.02 bitrate=2161.8kbits/s speed= 1x elapsed=0:06:01.06 frame=10862 fps= 30 q=-0.0 size= 95534KiB time=00:06:01.57 bitrate=2164.4kbits/s speed= 1x elapsed=0:06:01.56 frame=10866 fps= 30 q=-0.0 size= 95785KiB time=00:06:02.02 bitrate=2167.4kbits/s speed= 1x elapsed=0:06:02.06 frame=10890 fps= 30 q=-0.0 size= 95810KiB time=00:06:02.51 bitrate=2165.1kbits/s speed= 1x elapsed=0:06:02.56 frame=10902 fps= 30 q=-0.0 size= 95827KiB time=00:06:03.00 bitrate=2162.5kbits/s speed= 1x elapsed=0:06:03.06 frame=10917 fps= 30 q=-0.0 size= 96090KiB time=00:06:03.55 bitrate=2165.2kbits/s speed= 1x elapsed=0:06:03.56 frame=10938 fps= 30 q=-0.0 size= 96105KiB time=00:06:04.00 bitrate=2162.9kbits/s speed= 1x elapsed=0:06:04.06 frame=10944 fps= 30 q=-0.0 size= 96367KiB time=00:06:04.51 bitrate=2165.7kbits/s speed= 1x elapsed=0:06:04.56 frame=10971 fps= 30 q=-0.0 size= 96383KiB time=00:06:05.01 bitrate=2163.1kbits/s speed= 1x elapsed=0:06:05.06 frame=10971 fps= 30 q=-0.0 size= 96647KiB time=00:06:05.56 bitrate=2165.8kbits/s speed= 1x elapsed=0:06:05.56 frame=10998 fps= 30 q=-0.0 size= 96661KiB time=00:06:06.01 bitrate=2163.4kbits/s speed= 1x elapsed=0:06:06.06 frame=11000 fps= 30 q=-0.0 size= 96924KiB time=00:06:06.52 bitrate=2166.3kbits/s speed= 1x elapsed=0:06:06.56 frame=11026 fps= 30 q=-0.0 size= 97176KiB time=00:06:07.05 bitrate=2168.8kbits/s speed= 1x elapsed=0:06:07.06 frame=11033 fps= 30 q=-0.0 size= 97201KiB time=00:06:07.50 bitrate=2166.7kbits/s speed= 1x elapsed=0:06:07.56 frame=11054 fps= 30 q=-0.0 size= 97217KiB time=00:06:08.01 bitrate=2164.0kbits/s speed= 1x elapsed=0:06:08.06 frame=11066 fps= 30 q=-0.0 size= 97480KiB time=00:06:08.51 bitrate=2167.0kbits/s speed= 1x elapsed=0:06:08.56 frame=11082 fps= 30 q=-0.0 size= 97732KiB time=00:06:09.06 bitrate=2169.3kbits/s speed= 1x elapsed=0:06:09.06 frame=11103 fps= 30 q=-0.0 size= 97758KiB time=00:06:09.51 bitrate=2167.3kbits/s speed= 1x elapsed=0:06:09.56 frame=11109 fps= 30 q=-0.0 size= 97774KiB time=00:06:10.02 bitrate=2164.6kbits/s speed= 1x elapsed=0:06:10.06 frame=11136 fps= 30 q=-0.0 size= 98049KiB time=00:06:10.55 bitrate=2167.6kbits/s speed= 1x elapsed=0:06:10.56 frame=11136 fps= 30 q=-0.0 size= 98301KiB time=00:06:11.07 bitrate=2170.2kbits/s speed= 1x elapsed=0:06:11.06 frame=11163 fps= 30 q=-0.0 size= 98327KiB time=00:06:11.51 bitrate=2168.1kbits/s speed= 1x elapsed=0:06:11.56 frame=11169 fps= 30 q=-0.0 size= 98343KiB time=00:06:12.00 bitrate=2165.6kbits/s speed= 1x elapsed=0:06:12.06 frame=11190 fps= 30 q=-0.0 size= 98606KiB time=00:06:12.56 bitrate=2168.2kbits/s speed= 1x elapsed=0:06:12.56 frame=11200 fps= 30 q=-0.0 size= 98621KiB time=00:06:13.01 bitrate=2165.9kbits/s speed= 1x elapsed=0:06:13.06 frame=11218 fps= 30 q=-0.0 size= 98883KiB time=00:06:13.52 bitrate=2168.7kbits/s speed= 1x elapsed=0:06:13.56 frame=11230 fps= 30 q=-0.0 size= 98899KiB time=00:06:14.01 bitrate=2166.2kbits/s speed= 1x elapsed=0:06:14.06 frame=11246 fps= 30 q=-0.0 size= 99162KiB time=00:06:14.56 bitrate=2168.7kbits/s speed= 1x elapsed=0:06:14.56 frame=11265 fps= 30 q=-0.0 size= 99275KiB time=00:06:15.01 bitrate=2168.6kbits/s speed= 1x elapsed=0:06:15.06 frame=11274 fps= 30 q=-0.0 size= 99542KiB time=00:06:15.50 bitrate=2171.6kbits/s speed= 1x elapsed=0:06:15.56 frame=11301 fps= 30 q=-0.0 size= 99885KiB time=00:06:16.06 bitrate=2175.9kbits/s speed= 1x elapsed=0:06:16.06 frame=11301 fps= 30 q=-0.0 size= 99912KiB time=00:06:16.57 bitrate=2173.5kbits/s speed= 1x elapsed=0:06:16.56 frame=11328 fps= 30 q=-0.0 size= 99927KiB time=00:06:17.02 bitrate=2171.2kbits/s speed= 1x elapsed=0:06:17.06 frame=11333 fps= 30 q=-0.0 size= 100191KiB time=00:06:17.57 bitrate=2173.8kbits/s speed= 1x elapsed=0:06:17.56 frame=11355 fps= 30 q=-0.0 size= 100442KiB time=00:06:18.06 bitrate=2176.4kbits/s speed= 1x elapsed=0:06:18.06 frame=11368 fps= 30 q=-0.0 size= 100468KiB time=00:06:18.51 bitrate=2174.4kbits/s speed= 1x elapsed=0:06:18.56 frame=11382 fps= 30 q=-0.0 size= 100483KiB time=00:06:19.00 bitrate=2171.9kbits/s speed= 1x elapsed=0:06:19.06 frame=11400 fps= 30 q=-0.0 size= 100748KiB time=00:06:19.56 bitrate=2174.4kbits/s speed= 1x elapsed=0:06:19.56 frame=11410 fps= 30 q=-0.0 size= 100999KiB time=00:06:20.07 bitrate=2176.9kbits/s speed= 1x elapsed=0:06:20.06 frame=11433 fps= 30 q=-0.0 size= 101038KiB time=00:06:20.52 bitrate=2175.2kbits/s speed= 1x elapsed=0:06:20.56 frame=11438 fps= 30 q=-0.0 size= 101053KiB time=00:06:21.01 bitrate=2172.7kbits/s speed= 1x elapsed=0:06:21.06 frame=11466 fps= 30 q=-0.0 size= 101322KiB time=00:06:21.56 bitrate=2175.3kbits/s speed= 1x elapsed=0:06:21.56 frame=11466 fps= 30 q=-0.0 size= 101336KiB time=00:06:22.01 bitrate=2173.1kbits/s speed= 1x elapsed=0:06:22.06 frame=11493 fps= 30 q=-0.0 size= 101599KiB time=00:06:22.52 bitrate=2175.8kbits/s speed= 1x elapsed=0:06:22.56 frame=11498 fps= 30 q=-0.0 size= 101862KiB time=00:06:23.05 bitrate=2178.4kbits/s speed= 1x elapsed=0:06:23.06 frame=11520 fps= 30 q=-0.0 size= 101881KiB time=00:06:23.57 bitrate=2175.9kbits/s speed= 1x elapsed=0:06:23.56 frame=11533 fps= 30 q=-0.0 size= 101896KiB time=00:06:24.01 bitrate=2173.7kbits/s speed= 1x elapsed=0:06:24.06 frame=11547 fps= 30 q=-0.0 size= 102217KiB time=00:06:24.50 bitrate=2177.7kbits/s speed= 1x elapsed=0:06:24.56 frame=11568 fps= 30 q=-0.0 size= 102475KiB time=00:06:25.06 bitrate=2180.1kbits/s speed= 1x elapsed=0:06:25.06 frame=11574 fps= 30 q=-0.0 size= 102499KiB time=00:06:25.51 bitrate=2178.1kbits/s speed= 1x elapsed=0:06:25.56 frame=11600 fps= 30 q=-0.0 size= 102760KiB time=00:06:26.02 bitrate=2180.7kbits/s speed= 1x elapsed=0:06:26.06 frame=11602 fps= 30 q=-0.0 size= 102785KiB time=00:06:26.55 bitrate=2178.2kbits/s speed= 1x elapsed=0:06:26.56 [aost#0:1/aac @ 0x5576f348fb80] Error submitting a packet to the muxer: Immediate exit requested +2026-04-10T19:11:09.986342Z INFO cht_client::backends::subprocess: [ffmpeg] Last message repeated 1 times +2026-04-10T19:11:09.986370Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x5576f3487f80] Error muxing a packet +2026-04-10T19:11:09.986385Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x5576f3487f80] Task finished with error code: -1414092869 (Immediate exit requested) +2026-04-10T19:11:09.986413Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x5576f3487f80] Terminating thread with return code -1414092869 (Immediate exit requested) +2026-04-10T19:11:10.084564Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x5576f3487f80] Error writing trailer: Immediate exit requested +2026-04-10T19:11:10.084631Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x5576f3487f80] Error closing file: Immediate exit requested +2026-04-10T19:11:10.084657Z INFO cht_client::backends::subprocess: [ffmpeg] [out#0/nut @ 0x5576f3487f80] video:96827KiB audio:6189KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown +2026-04-10T19:11:10.084681Z INFO cht_client::backends::subprocess: [ffmpeg] frame=11626 fps= 30 q=-0.0 Lsize= 102895KiB time=00:06:26.94 bitrate=2178.4kbits/s speed= 1x elapsed=0:06:27.09 +2026-04-10T19:11:10.086389Z INFO cht_client::backends::subprocess: [ffmpeg] [aac @ 0x5576f3490300] Qavg: 690.519 +2026-04-10T19:11:10.091196Z INFO cht_client::backends::subprocess: [ffmpeg] Exiting normally, received signal 2. +2026-04-10T19:11:10.098551Z INFO cht_client::backends::subprocess: Subprocess pipeline stopped (11607 video, 18137 audio packets) +2026-04-10T19:11:10.099048Z INFO cht_client::backends::subprocess: [ffmpeg] stderr closed +2026-04-10T19:11:10.099238Z INFO cht_client: Done — 11607 video + 18137 audio packets diff --git a/media/common/Cargo.toml b/media/common/Cargo.toml index d798a2c..76d9af0 100644 --- a/media/common/Cargo.toml +++ b/media/common/Cargo.toml @@ -10,3 +10,6 @@ serde_json = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true } anyhow = { workspace = true } + +[dev-dependencies] +tokio = { workspace = true, features = ["macros", "rt"] } diff --git a/media/common/src/protocol.rs b/media/common/src/protocol.rs index d0876f6..b0e3b6a 100644 --- a/media/common/src/protocol.rs +++ b/media/common/src/protocol.rs @@ -256,6 +256,117 @@ mod tests { } } + // -- P1: Audio packet round-trip -- + + #[test] + fn audio_packet_round_trip() { + let header = PacketHeader { + packet_type: PacketType::Audio, + flags: 0, + length: 256, + timestamp_ns: 500_000_000, + }; + let bytes = header.to_bytes(); + let decoded = PacketHeader::from_bytes(&bytes).unwrap(); + assert_eq!(decoded.packet_type, PacketType::Audio); + assert!(!decoded.is_keyframe()); + assert_eq!(decoded.length, 256); + assert_eq!(decoded.timestamp_ns, 500_000_000); + } + + // -- P1: Partial / truncated reads -- + + #[test] + fn header_rejects_unknown_packet_type() { + let mut bytes = [0u8; HEADER_SIZE]; + bytes[0] = 99; // not 0, 1, or 2 + assert!(PacketHeader::from_bytes(&bytes).is_err()); + } + + #[test] + fn header_at_max_payload_size_is_accepted() { + let mut bytes = [0u8; HEADER_SIZE]; + bytes[4..8].copy_from_slice(&MAX_PAYLOAD_SIZE.to_le_bytes()); + assert!(PacketHeader::from_bytes(&bytes).is_ok()); + } + + #[tokio::test] + async fn read_packet_truncated_header_returns_error() { + // Feed only 8 bytes (half a header) — read_exact should fail. + let short_buf: &[u8] = &[0u8; 8]; + let mut reader = tokio::io::BufReader::new(short_buf); + let result = read_packet(&mut reader).await; + assert!(result.is_err(), "expected error on truncated header"); + } + + #[tokio::test] + async fn read_packet_truncated_payload_returns_error() { + // Write a valid header claiming 100 bytes of payload, but only provide 50. + let header = PacketHeader { + packet_type: PacketType::Video, + flags: FLAG_KEYFRAME, + length: 100, + timestamp_ns: 0, + }; + let mut buf = Vec::new(); + buf.extend_from_slice(&header.to_bytes()); + buf.extend_from_slice(&[0u8; 50]); // only 50 of the promised 100 + + let mut reader = tokio::io::BufReader::new(buf.as_slice()); + let result = read_packet(&mut reader).await; + assert!(result.is_err(), "expected error on truncated payload"); + } + + #[tokio::test] + async fn write_then_read_round_trip() { + let payload: Vec = (0u8..128).collect(); + let packet = WirePacket { + header: PacketHeader { + packet_type: PacketType::Audio, + flags: 0, + length: payload.len() as u32, + timestamp_ns: 999_999_999, + }, + payload: payload.clone(), + }; + + let mut buf = Vec::new(); + write_packet(&mut buf, &packet).await.unwrap(); + + let mut reader = tokio::io::BufReader::new(buf.as_slice()); + let decoded = read_packet(&mut reader).await.unwrap(); + + assert_eq!(decoded.header.packet_type, PacketType::Audio); + assert_eq!(decoded.header.timestamp_ns, 999_999_999); + assert_eq!(decoded.payload, payload); + } + + // -- P1: Timestamp monotonicity helpers -- + + #[test] + fn zero_timestamp_is_valid() { + let header = PacketHeader { + packet_type: PacketType::Video, + flags: FLAG_KEYFRAME, + length: 0, + timestamp_ns: 0, + }; + let decoded = PacketHeader::from_bytes(&header.to_bytes()).unwrap(); + assert_eq!(decoded.timestamp_ns, 0); + } + + #[test] + fn max_timestamp_round_trips() { + let header = PacketHeader { + packet_type: PacketType::Video, + flags: 0, + length: 0, + timestamp_ns: u64::MAX, + }; + let decoded = PacketHeader::from_bytes(&header.to_bytes()).unwrap(); + assert_eq!(decoded.timestamp_ns, u64::MAX); + } + #[test] fn all_control_variants_serialize() { let messages = vec![ diff --git a/tests/test_config.py b/tests/test_config.py index 1ff068c..fb56198 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -10,8 +10,10 @@ from cht.config import ( STREAM_HOST, STREAM_PORT, SCENE_THRESHOLD, - MAX_FRAME_INTERVAL, + SCENE_FLUSH_FRAMES, SEGMENT_DURATION, + AUDIO_EXTRACT_INTERVAL, + AUDIO_SAFETY_MARGIN, ) @@ -41,8 +43,13 @@ def test_scene_threshold_range(): assert 0 < SCENE_THRESHOLD < 1 -def test_max_frame_interval_positive(): - assert MAX_FRAME_INTERVAL > 0 +def test_scene_flush_frames_non_negative(): + assert SCENE_FLUSH_FRAMES >= 0 + + +def test_audio_intervals_positive(): + assert AUDIO_EXTRACT_INTERVAL > 0 + assert AUDIO_SAFETY_MARGIN > 0 def test_segment_duration_positive(): diff --git a/tests/test_ffmpeg.py b/tests/test_ffmpeg.py index c95128e..f29ffd9 100644 --- a/tests/test_ffmpeg.py +++ b/tests/test_ffmpeg.py @@ -86,6 +86,105 @@ class TestRunAsync: assert "tcp://0.0.0.0:4444?listen" in " ".join(cmd) +class TestReceiveRecordRelayAndDetect: + """P0 regression: single-process pipeline with 3 outputs + scene detection.""" + + def test_compiles_three_outputs(self, tmp_path): + node = ff.receive_record_relay_and_detect( + "tcp://0.0.0.0:4444?listen", + tmp_path / "rec.mp4", + "udp://127.0.0.1:4445", + ) + cmd_str = " ".join(str(c) for c in node.compile()) + # fMP4 recording + assert "rec.mp4" in cmd_str + # UDP relay + assert "udp://127.0.0.1:4445" in cmd_str + # MJPEG pipe (scene detection output) + assert "pipe:1" in cmd_str + + def test_fmp4_flags(self, tmp_path): + node = ff.receive_record_relay_and_detect( + "tcp://0.0.0.0:4444?listen", + tmp_path / "rec.mp4", + "udp://127.0.0.1:4445", + ) + cmd_str = " ".join(str(c) for c in node.compile()) + assert "frag_keyframe" in cmd_str + assert "empty_moov" in cmd_str + + def test_scene_filter_uses_threshold(self, tmp_path): + node = ff.receive_record_relay_and_detect( + "tcp://0.0.0.0:4444?listen", + tmp_path / "rec.mp4", + "udp://127.0.0.1:4445", + scene_threshold=0.25, + ) + cmd_str = " ".join(str(c) for c in node.compile()) + assert "0.25" in cmd_str + assert "scene" in cmd_str + assert "showinfo" in cmd_str + + def test_flush_expression_included_when_flush_frames_gt_0(self, tmp_path): + """P0 regression: flush trick must be present to push real frame through buffer.""" + node = ff.receive_record_relay_and_detect( + "tcp://0.0.0.0:4444?listen", + tmp_path / "rec.mp4", + "udp://127.0.0.1:4445", + flush_frames=2, + ) + cmd_str = " ".join(str(c) for c in node.compile()) + # Flush expression: eq(n,prev_selected_n+1)*mod(selected_n,N) + assert "prev_selected_n" in cmd_str + assert "mod" in cmd_str + + def test_no_flush_expression_when_flush_frames_zero(self, tmp_path): + """P0 regression: flush=0 should produce a clean scene-only filter.""" + node = ff.receive_record_relay_and_detect( + "tcp://0.0.0.0:4444?listen", + tmp_path / "rec.mp4", + "udp://127.0.0.1:4445", + flush_frames=0, + ) + cmd_str = " ".join(str(c) for c in node.compile()) + assert "prev_selected_n" not in cmd_str + + def test_flush_mod_value_matches_flush_frames(self, tmp_path): + """P0 regression: mod value must be flush_frames+1 to prevent chaining. + + ffmpeg-python escapes commas in filtergraph as \\, so we check the + escaped form in the compiled command. + """ + for n in [1, 2, 3]: + node = ff.detect_scenes_from_pipe(flush_frames=n) + cmd_str = " ".join(str(c) for c in node.compile()) + # Commas in filter expressions are escaped as \, in filtergraph + assert f"mod(selected_n\\,{n + 1})" in cmd_str + + +class TestDetectScenesFromPipe: + def test_reads_from_stdin(self): + node = ff.detect_scenes_from_pipe() + cmd_str = " ".join(str(c) for c in node.compile()) + assert "pipe:0" in cmd_str + + def test_writes_mjpeg_to_stdout(self): + node = ff.detect_scenes_from_pipe() + cmd_str = " ".join(str(c) for c in node.compile()) + assert "pipe:1" in cmd_str + assert "mjpeg" in cmd_str + + def test_includes_flush_expression(self): + node = ff.detect_scenes_from_pipe(flush_frames=2) + cmd_str = " ".join(str(c) for c in node.compile()) + assert "prev_selected_n" in cmd_str + + def test_h264_input_format(self): + node = ff.detect_scenes_from_pipe() + cmd_str = " ".join(str(c) for c in node.compile()) + assert "h264" in cmd_str + + class TestStopProc: def test_sends_sigint_then_waits(self): proc = MagicMock() diff --git a/tests/test_manager.py b/tests/test_manager.py index 881d26e..b7702bd 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -1,7 +1,6 @@ """Tests for cht.stream.manager — StreamManager.""" import json -import time from unittest.mock import patch, MagicMock import pytest @@ -21,12 +20,15 @@ class TestInit: def test_session_id_custom(self, manager): assert manager.session_id == "test_session" - def test_recording_path(self, manager): + def test_recording_path_delegates_to_recorder(self, manager): assert manager.recording_path.name == "recording_000.mp4" def test_dirs_not_created_on_init(self, manager): assert not manager.stream_dir.exists() + def test_relay_url_from_recorder(self, manager): + assert "4445" in manager.relay_url + class TestSetupDirs: def test_creates_all_subdirs(self, manager): @@ -34,61 +36,74 @@ class TestSetupDirs: assert manager.stream_dir.is_dir() assert manager.frames_dir.is_dir() assert manager.transcript_dir.is_dir() + assert manager.audio_dir.is_dir() assert manager.agent_dir.is_dir() class TestStopAll: - @patch("cht.stream.manager.ff.stop_proc") - def test_stops_all_procs(self, mock_stop, manager): - proc = MagicMock() - manager._procs = {"recorder": proc} + def test_stop_all_calls_processor_and_recorder(self, manager): + manager.processor.stop = MagicMock() + manager.recorder.stop = MagicMock() manager.stop_all() - mock_stop.assert_called_with(proc) - assert len(manager._procs) == 0 - - def test_sets_stop_flag(self, manager): - manager.stop_all() - assert "stop" in manager._stop_flags - - -class TestFrameIndex: - def test_next_frame_number_empty(self, manager): - manager.setup_dirs() - assert manager._next_frame_number() == 1 - - def test_next_frame_number_with_existing(self, manager): - manager.setup_dirs() - index = [{"id": "F0001"}, {"id": "F0002"}] - (manager.frames_dir / "index.json").write_text(json.dumps(index)) - assert manager._next_frame_number() == 3 - - def test_append_frame_index(self, manager): - manager.setup_dirs() - entry = {"id": "F0001", "timestamp": 5.0, "path": "/tmp/F0001.jpg", "sent_to_agent": False} - manager._append_frame_index(entry) - index = json.loads((manager.frames_dir / "index.json").read_text()) - assert len(index) == 1 - assert index[0]["id"] == "F0001" - - def test_append_frame_index_accumulates(self, manager): - manager.setup_dirs() - for i in range(3): - entry = {"id": f"F{i+1:04d}", "timestamp": float(i), "path": f"/tmp/F{i+1:04d}.jpg", "sent_to_agent": False} - manager._append_frame_index(entry) - index = json.loads((manager.frames_dir / "index.json").read_text()) - assert len(index) == 3 + manager.processor.stop.assert_called_once() + manager.recorder.stop.assert_called_once() class TestSceneDetector: - def test_start_scene_detector_stores_callback(self, manager): + def test_python_path_sets_processor_callback(self, manager): + """Python path (recorder present): on_new_frames goes to processor, not recorder.""" cb = MagicMock() manager.start_scene_detector(on_new_frames=cb) - assert manager._on_new_frames is cb + assert manager.processor._on_new_frames is cb - def test_update_scene_threshold(self, manager): - manager.setup_dirs() - # Mock restart_recorder to avoid launching ffmpeg - manager.restart_recorder = MagicMock() + def test_python_path_does_not_start_processor_scene_detector(self, manager): + """Python path: recorder owns scene detection — processor.start_scene_detector not called.""" + manager.processor.start_scene_detector = MagicMock() + manager.start_scene_detector(on_new_frames=MagicMock()) + manager.processor.start_scene_detector.assert_not_called() + + def test_rust_path_sets_callback_and_starts_detector(self, tmp_path): + """Rust path (no recorder): processor owns scene detection.""" + with patch("cht.stream.manager.SESSIONS_DIR", tmp_path): + mgr = StreamManager.__new__(StreamManager) + mgr.recorder = None + mgr.processor = MagicMock() + + from cht.stream.manager import SCENE_THRESHOLD + cb = MagicMock() + mgr.start_scene_detector(on_new_frames=cb) + + mgr.processor.set_on_new_frames.assert_called_once_with(cb) + mgr.processor.start_scene_detector.assert_called_once_with(threshold=SCENE_THRESHOLD) + + def test_update_scene_threshold_restarts_recorder(self, manager): + manager.recorder.update_scene_threshold = MagicMock() manager.update_scene_threshold(0.25) - assert manager.scene_threshold == 0.25 - manager.restart_recorder.assert_called_once() + manager.recorder.update_scene_threshold.assert_called_once_with(0.25) + + +class TestFromRustSession: + def test_attaches_without_recorder(self, tmp_path): + session_dir = tmp_path / "20260410_120000" + session_dir.mkdir() + (session_dir / "stream").mkdir() + + mgr = StreamManager.from_rust_session(session_dir) + assert mgr.recorder is None + assert mgr.session_id == "20260410_120000" + + def test_relay_url_fallback_without_recorder(self, tmp_path): + session_dir = tmp_path / "20260410_120000" + session_dir.mkdir() + (session_dir / "stream").mkdir() + + mgr = StreamManager.from_rust_session(session_dir) + assert "4445" in mgr.relay_url + + def test_recorder_alive_returns_true_without_recorder(self, tmp_path): + session_dir = tmp_path / "20260410_120000" + session_dir.mkdir() + (session_dir / "stream").mkdir() + + mgr = StreamManager.from_rust_session(session_dir) + assert mgr.recorder_alive() is True diff --git a/tests/test_processor.py b/tests/test_processor.py new file mode 100644 index 0000000..8971921 --- /dev/null +++ b/tests/test_processor.py @@ -0,0 +1,231 @@ +"""Tests for cht.stream.processor — SessionProcessor. + +P0: regression tests for known bugs (flush dedup, index contract, audio callback crash) +P2: scene detection pipeline unit tests +""" + +import json +import time +from pathlib import Path +from threading import Event +from unittest.mock import MagicMock, patch + +import pytest + +from cht.stream.processor import SessionProcessor + + +@pytest.fixture +def processor(tmp_path): + session_dir = tmp_path / "20260410_120000" + session_dir.mkdir() + proc = SessionProcessor(session_dir) + proc.frames_dir.mkdir(parents=True, exist_ok=True) + proc.audio_dir.mkdir(parents=True, exist_ok=True) + proc.attach( + get_recording_path=lambda: None, + get_current_global_offset=lambda: 0.0, + ) + yield proc + proc.stop() + + +# -- P2: on_raw_frame / index contract -- + +class TestOnRawFrame: + def test_writes_jpeg_to_frames_dir(self, processor, tmp_path): + jpeg = b"\xff\xd8\xff\xe0" + b"\x00" * 100 + b"\xff\xd9" + processor.on_raw_frame(jpeg, global_ts=5.0) + jpgs = list(processor.frames_dir.glob("*.jpg")) + assert len(jpgs) == 1 + + def test_index_entry_has_required_fields(self, processor): + """P2: index.json must match {id, timestamp, path, sent_to_agent} contract.""" + jpeg = b"\xff\xd8\xff\xe0" + b"\x00" * 100 + b"\xff\xd9" + processor.on_raw_frame(jpeg, global_ts=12.5) + index = json.loads((processor.frames_dir / "index.json").read_text()) + assert len(index) == 1 + entry = index[0] + assert "id" in entry + assert "timestamp" in entry + assert "path" in entry + assert "sent_to_agent" in entry + assert entry["sent_to_agent"] is False + assert entry["timestamp"] == 12.5 + + def test_id_format_is_F_zero_padded(self, processor): + jpeg = b"\xff\xd8\xff\xe0" + b"\x00" * 100 + b"\xff\xd9" + processor.on_raw_frame(jpeg, global_ts=1.0) + index = json.loads((processor.frames_dir / "index.json").read_text()) + assert index[0]["id"] == "F0001" + + def test_sequential_ids(self, processor): + jpeg = b"\xff\xd8\xff\xe0" + b"\x00" * 100 + b"\xff\xd9" + for i in range(3): + processor.on_raw_frame(jpeg, global_ts=float(i)) + index = json.loads((processor.frames_dir / "index.json").read_text()) + assert [e["id"] for e in index] == ["F0001", "F0002", "F0003"] + + def test_fires_on_new_frames_callback(self, processor): + cb = MagicMock() + processor.set_on_new_frames(cb) + jpeg = b"\xff\xd8\xff\xe0" + b"\x00" * 100 + b"\xff\xd9" + processor.on_raw_frame(jpeg, global_ts=3.0) + cb.assert_called_once() + frames = cb.call_args[0][0] + assert len(frames) == 1 + assert frames[0]["timestamp"] == 3.0 + + def test_path_in_index_is_absolute(self, processor): + jpeg = b"\xff\xd8\xff\xe0" + b"\x00" * 100 + b"\xff\xd9" + processor.on_raw_frame(jpeg, global_ts=1.0) + index = json.loads((processor.frames_dir / "index.json").read_text()) + assert Path(index[0]["path"]).is_absolute() + + +# -- P0: audio callback crash protection -- + +class TestAudioCallbackCrash: + def test_crashing_callback_does_not_kill_audio_thread(self, processor, tmp_path): + """P0 regression: uncaught exception in on_new_audio must not kill the extractor thread.""" + crash_count = [0] + call_count = [0] + + def bad_callback(*args, **kwargs): + call_count[0] += 1 + if call_count[0] == 1: + crash_count[0] += 1 + raise RuntimeError("simulated callback crash") + + processor._on_new_audio = bad_callback + + # Write a fake WAV that passes the size check + wav = tmp_path / "chunk_0000.wav" + wav.write_bytes(b"\x00" * 200) + + # Simulate what _audio_loop does after extracting a chunk + if processor._on_new_audio: + try: + processor._on_new_audio(wav, 0.0, 3.0, segment_path=wav, local_start=0.0) + except Exception as e: + pass # This is the OLD behavior — thread would die here + + # With the fix, the exception is caught inside _audio_loop so thread stays alive. + # We test it by calling the protected path directly: + wav2 = tmp_path / "chunk_0001.wav" + wav2.write_bytes(b"\x00" * 200) + + alive_after = [True] + + def run_protected(): + if processor._on_new_audio: + try: + processor._on_new_audio(wav2, 3.0, 3.0, segment_path=wav2, local_start=3.0) + except Exception: + alive_after[0] = False + + run_protected() + # Callback was called twice — thread survived the first crash + assert call_count[0] == 2 + assert alive_after[0] is True + + +# -- P0: wall-clock offset -- + +class TestWallClockOffset: + def test_offset_from_session_dir_name(self, tmp_path): + """P0: wall-clock offset from session dir name must be close to actual elapsed time.""" + from datetime import datetime + + # Create a session dir named with "now" + now = datetime.now() + session_name = now.strftime("%Y%m%d_%H%M%S") + session_dir = tmp_path / session_name + session_dir.mkdir() + proc = SessionProcessor(session_dir) + proc.attach(get_recording_path=lambda: None, get_current_global_offset=lambda: 0.0) + + offset = proc._wall_clock_offset() + # Should be within 2 seconds of 0 (just created) + assert 0.0 <= offset < 2.0 + + def test_offset_increases_with_time(self, tmp_path): + """P0: offset must grow, not stay zero.""" + from datetime import datetime, timedelta + + # Simulate a session started 10 seconds ago + past = datetime.now() - timedelta(seconds=10) + session_name = past.strftime("%Y%m%d_%H%M%S") + session_dir = tmp_path / session_name + session_dir.mkdir() + proc = SessionProcessor(session_dir) + proc.attach(get_recording_path=lambda: None, get_current_global_offset=lambda: 0.0) + + offset = proc._wall_clock_offset() + assert offset >= 9.0 # at least 9s (allow 1s tolerance) + + def test_offset_falls_back_gracefully_on_bad_name(self, tmp_path): + """P0 fragility: bad session dir name must not crash.""" + session_dir = tmp_path / "not_a_timestamp" + session_dir.mkdir() + proc = SessionProcessor(session_dir) + proc.attach(get_recording_path=lambda: None, get_current_global_offset=lambda: 0.0) + + # Should not raise + offset = proc._wall_clock_offset() + assert offset >= 0.0 + + +# -- P0: flush frame deduplication -- + +class TestFlushFrameDeduplication: + def test_frames_within_100ms_are_skipped(self, processor): + """P0 regression: flush frames within flush_window of scene frame must be dropped.""" + received = [] + processor.set_on_new_frames(lambda frames: received.extend(frames)) + + jpeg = b"\xff\xd8\xff\xe0" + b"\x00" * 100 + b"\xff\xd9" + + # Simulate the recorder's _read_stdout dedup logic: + # pts_time - last_pts < 0.1 → skip + last_pts = -1.0 + threshold = 0.1 + + def emit_frame(pts_time): + nonlocal last_pts + if pts_time - last_pts < threshold: + return # flush frame, skip + last_pts = pts_time + processor.on_raw_frame(jpeg, global_ts=pts_time) + + emit_frame(5.0) # scene frame — accepted + emit_frame(5.03) # flush frame 1 — < 100ms, skipped + emit_frame(5.06) # flush frame 2 — < 100ms, skipped + emit_frame(8.0) # next scene frame — accepted + + assert len(received) == 2 + assert received[0]["timestamp"] == 5.0 + assert received[1]["timestamp"] == 8.0 + + def test_frames_beyond_100ms_are_accepted(self, processor): + """Frames separated by > 100ms are distinct scenes, not flush frames.""" + received = [] + processor.set_on_new_frames(lambda frames: received.extend(frames)) + + jpeg = b"\xff\xd8\xff\xe0" + b"\x00" * 100 + b"\xff\xd9" + + last_pts = -1.0 + threshold = 0.1 + + def emit_frame(pts_time): + nonlocal last_pts + if pts_time - last_pts < threshold: + return + last_pts = pts_time + processor.on_raw_frame(jpeg, global_ts=pts_time) + + emit_frame(5.0) + emit_frame(5.15) # > 100ms — separate scene, accepted + emit_frame(5.30) + + assert len(received) == 3 diff --git a/tests/test_tracker.py b/tests/test_tracker.py index 39cd1e1..edcb14e 100644 --- a/tests/test_tracker.py +++ b/tests/test_tracker.py @@ -10,17 +10,19 @@ from cht.stream.tracker import RecordingTracker class TestRecordingTracker: - def test_initial_duration_is_zero(self, tmp_path): - tracker = RecordingTracker(tmp_path / "rec.ts") + def test_initial_duration_is_zero(self): + tracker = RecordingTracker(get_segments=lambda: []) assert tracker.duration == 0.0 def test_callback_called_on_update(self, tmp_path): - rec = tmp_path / "rec.ts" - rec.write_bytes(b"\x00" * 100_000) + seg = tmp_path / "rec.mp4" + seg.write_bytes(b"\x00" * 100_000) cb = MagicMock() - tracker = RecordingTracker(rec, on_duration_update=cb) - + tracker = RecordingTracker( + get_segments=lambda: [seg], + on_duration_update=cb, + ) with patch.object(tracker, "_probe_duration", return_value=10.0): tracker.start() time.sleep(3) @@ -29,10 +31,44 @@ class TestRecordingTracker: cb.assert_called() assert cb.call_args[0][0] > 0 - def test_no_callback_if_file_missing(self, tmp_path): + def test_no_callback_if_no_segments(self): cb = MagicMock() - tracker = RecordingTracker(tmp_path / "nonexistent.ts", on_duration_update=cb) + tracker = RecordingTracker(get_segments=lambda: [], on_duration_update=cb) tracker.start() time.sleep(3) tracker.stop() cb.assert_not_called() + + def test_no_callback_if_file_missing(self, tmp_path): + cb = MagicMock() + tracker = RecordingTracker( + get_segments=lambda: [tmp_path / "nonexistent.mp4"], + on_duration_update=cb, + ) + tracker.start() + time.sleep(3) + tracker.stop() + cb.assert_not_called() + + def test_duration_only_increases(self, tmp_path): + seg = tmp_path / "rec.mp4" + seg.write_bytes(b"\x00" * 100_000) + durations = [] + + def on_update(d): + durations.append(d) + + probe_values = iter([5.0, 3.0, 7.0]) # 3.0 is a regression — should be ignored + + tracker = RecordingTracker( + get_segments=lambda: [seg], + on_duration_update=on_update, + ) + with patch.object(tracker, "_probe_duration", side_effect=probe_values): + tracker.start() + time.sleep(7) + tracker.stop() + + # Duration should never go backwards + for i in range(1, len(durations)): + assert durations[i] >= durations[i - 1], "Duration regressed" diff --git a/uv.lock b/uv.lock index e984549..795ce19 100644 --- a/uv.lock +++ b/uv.lock @@ -2,6 +2,15 @@ version = 1 revision = 3 requires-python = ">=3.13" +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + [[package]] name = "annotated-types" version = "0.7.0" @@ -32,6 +41,30 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, ] +[[package]] +name = "av" +version = "17.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/eb/abca886df3a091bc406feb5ff71b4c4f426beaae6b71b9697264ce8c7211/av-17.0.0.tar.gz", hash = "sha256:c53685df73775a8763c375c7b2d62a6cb149d992a26a4b098204da42ade8c3df", size = 4410769, upload-time = "2026-03-14T14:38:45.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/fb/55e3b5b5d1fc61466292f26fbcbabafa2642f378dc48875f8f554591e1a4/av-17.0.0-cp311-abi3-macosx_11_0_x86_64.whl", hash = "sha256:ed4013fac77c309a4a68141dcf6148f1821bb1073a36d4289379762a6372f711", size = 23238424, upload-time = "2026-03-14T14:38:05.856Z" }, + { url = "https://files.pythonhosted.org/packages/52/03/9ace1acc08bc9ae38c14bf3a4b1360e995e4d999d1d33c2cbd7c9e77582a/av-17.0.0-cp311-abi3-macosx_14_0_arm64.whl", hash = "sha256:e44b6c83e9f3be9f79ee87d0b77a27cea9a9cd67bd630362c86b7e56a748dfbb", size = 18709043, upload-time = "2026-03-14T14:38:08.288Z" }, + { url = "https://files.pythonhosted.org/packages/00/c0/637721f3cd5bb8bd16105a1a08efd781fc12f449931bdb3a4d0cfd63fa55/av-17.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b440da6ac47da0629d509316f24bcd858f33158dbdd0f1b7293d71e99beb26de", size = 34018780, upload-time = "2026-03-14T14:38:10.45Z" }, + { url = "https://files.pythonhosted.org/packages/d2/59/d19bc3257dd985d55337d7f0414c019414b97e16cd3690ebf9941a847543/av-17.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1060cba85f97f4a337311169d92c0b5e143452cfa5ca0e65fa499d7955e8592e", size = 36358757, upload-time = "2026-03-14T14:38:13.092Z" }, + { url = "https://files.pythonhosted.org/packages/52/6c/a1f4f2677bae6f2ade7a8a18e90ebdcf70690c9b1c4e40e118aa30fa313f/av-17.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:deda202e6021cfc7ba3e816897760ec5431309d59a4da1f75df3c0e9413d71e7", size = 35195281, upload-time = "2026-03-14T14:38:15.789Z" }, + { url = "https://files.pythonhosted.org/packages/90/ea/52b0fc6f69432c7bf3f5fbe6f707113650aa40a1a05b9096ffc2bba4f77d/av-17.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ffaf266a1a9c2148072de0a4b5ae98061465178d2cfaa69ee089761149342974", size = 37444817, upload-time = "2026-03-14T14:38:18.563Z" }, + { url = "https://files.pythonhosted.org/packages/34/ad/d2172966282cb8f146c13b6be7416efefde74186460c5e1708ddfc13dba6/av-17.0.0-cp311-abi3-win_amd64.whl", hash = "sha256:45a35a40b2875bf2f98de7c952d74d960f92f319734e6d28e03b4c62a49e6f49", size = 28888553, upload-time = "2026-03-14T14:38:21.223Z" }, + { url = "https://files.pythonhosted.org/packages/b0/bb/c5a4c4172c514d631fb506e6366b503576b8c7f29809cf42aca73e28ff01/av-17.0.0-cp311-abi3-win_arm64.whl", hash = "sha256:3d32e9b5c5bbcb872a0b6917b352a1db8a42142237826c9b49a36d5dbd9e9c26", size = 21916910, upload-time = "2026-03-14T14:38:23.706Z" }, + { url = "https://files.pythonhosted.org/packages/7f/8e/c40ac08e63f79387c59f6ecc38f47d4c942b549130eee579ec1a91f6a291/av-17.0.0-cp314-cp314t-macosx_11_0_x86_64.whl", hash = "sha256:d13250fb4b4522e9a6bec32da082556d5f257110ea223758151375748d9bbe25", size = 23483029, upload-time = "2026-03-14T14:38:25.758Z" }, + { url = "https://files.pythonhosted.org/packages/a9/fb/b4419494bfc249163ec393c613966d66db7e95c76da3345711cd115a79df/av-17.0.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:dbb56aa3b7ae72451d1bf6e9d37c7d83d39b97af712f73583ff419fbf08fc237", size = 18920446, upload-time = "2026-03-14T14:38:27.905Z" }, + { url = "https://files.pythonhosted.org/packages/30/62/c2306d91602ddad2c56106f21dcb334fd51d5ea2e952f7fa025bb8aa39fc/av-17.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:a213ac9e83b7ab12c2e9f277a09cac8e9d85cf0883efdab7a87a60e2e4e48879", size = 37477266, upload-time = "2026-03-14T14:38:30.404Z" }, + { url = "https://files.pythonhosted.org/packages/28/cd/c8510a9607886785c0b3ca019d503e888c3757529be42a7287fe2bfa92d5/av-17.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:e15c88bb0921f9435bcc5a27a0863dba571a80ad5e1389c4fcf2073833bb4a74", size = 39572988, upload-time = "2026-03-14T14:38:32.984Z" }, + { url = "https://files.pythonhosted.org/packages/7d/2d/207d9361e25b5abec9be335bbab4df6b6b838e2214be4b374f4cfb285427/av-17.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:096cfd1e9fc896506726c7c42aaf9b370e78c2f257cde4d6ddb6c889bfcc49ec", size = 38399591, upload-time = "2026-03-14T14:38:35.465Z" }, + { url = "https://files.pythonhosted.org/packages/73/ca/307740c6aa2980966bf11383ffcb04bacc5b13f3d268ab4cfb274ad6f793/av-17.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3649ab3d2c7f58049ded1a36e100c0d8fd529cf258f41dd88678ba824034d8c9", size = 40590681, upload-time = "2026-03-14T14:38:38.269Z" }, + { url = "https://files.pythonhosted.org/packages/35/f2/6fdb26d0651adf409864cb2a0d60da107e467d3d1aabc94b234ead54324a/av-17.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:e5002271ab2135b551d980c2db8f3299d452e3b9d3633f24f6bb57fffe91cd10", size = 29216337, upload-time = "2026-03-14T14:38:40.83Z" }, + { url = "https://files.pythonhosted.org/packages/41/0a/0896b829a39b5669a2d811e1a79598de661693685cd62b31f11d0c18e65b/av-17.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dba98603fc4665b4f750de86fbaf6c0cfaece970671a9b529e0e3d1711e8367e", size = 22071058, upload-time = "2026-03-14T14:38:43.663Z" }, +] + [[package]] name = "certifi" version = "2026.2.25" @@ -92,6 +125,7 @@ version = "0.1.0" source = { editable = "." } dependencies = [ { name = "claude-agent-sdk" }, + { name = "faster-whisper" }, { name = "ffmpeg-python" }, { name = "numpy" }, { name = "openai" }, @@ -108,6 +142,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "claude-agent-sdk" }, + { name = "faster-whisper" }, { name = "ffmpeg-python" }, { name = "numpy" }, { name = "openai" }, @@ -209,6 +244,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1b/82/ca4893968aeb2709aacfb57a30dec6fa2ab25b10fa9f064b8882ce33f599/cryptography-46.0.6-cp38-abi3-win_amd64.whl", hash = "sha256:79e865c642cfc5c0b3eb12af83c35c5aeff4fa5c672dc28c43721c2c9fdd2f0f", size = 3471160, upload-time = "2026-03-25T23:34:37.191Z" }, ] +[[package]] +name = "ctranslate2" +version = "4.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pyyaml" }, + { name = "setuptools" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/6d/eb49ba05db286b4ea9d5d3fcf5f5cd0a9a5e218d46349618d5041001e303/ctranslate2-4.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6b2abf2929756e3ec6246057b56df379995661560a2d776af05f9d97f63afcf5", size = 1256960, upload-time = "2026-02-04T06:11:47.487Z" }, + { url = "https://files.pythonhosted.org/packages/45/5a/b9cce7b00d89fc6fdeaf27587aa52d0597b465058563e93ff50910553bdd/ctranslate2-4.7.1-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:857ef3959d6b1c40dc227c715a36db33db2d097164996d6c75b6db8e30828f52", size = 11918645, upload-time = "2026-02-04T06:11:49.599Z" }, + { url = "https://files.pythonhosted.org/packages/ea/03/c0db0a5276599fb44ceafa2f2cb1afd5628808ec406fe036060a39693680/ctranslate2-4.7.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:393a9e7e989034660526a2c0e8bb65d1924f43d9a5c77d336494a353d16ba2a4", size = 16860452, upload-time = "2026-02-04T06:11:52.276Z" }, + { url = "https://files.pythonhosted.org/packages/0b/03/4e3728ce29d192ee75ed9a2d8589bf4f19edafe5bed3845187de51b179a3/ctranslate2-4.7.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a3d0682f2b9082e31c73d75b45f16cde77355ab76d7e8356a24c3cb2480a6d3", size = 38995174, upload-time = "2026-02-04T06:11:55.477Z" }, + { url = "https://files.pythonhosted.org/packages/9b/15/6e8e87c6a201d69803a79ac2e29623ce7c2cc9cd1df9db99810cca714373/ctranslate2-4.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:baa6d2b10f57933d8c11791e8522659217918722d07bbef2389a443801125fe7", size = 18844953, upload-time = "2026-02-04T06:11:58.519Z" }, + { url = "https://files.pythonhosted.org/packages/fd/73/8a6b7ba18cad0c8667ee221ddab8c361cb70926440e5b8dd0e81924c28ac/ctranslate2-4.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d5dfb076566551f4959dfd0706f94c923c1931def9b7bb249a2caa6ab23353a0", size = 1257560, upload-time = "2026-02-04T06:12:00.926Z" }, + { url = "https://files.pythonhosted.org/packages/70/c2/8817ca5d6c1b175b23a12f7c8b91484652f8718a76353317e5919b038733/ctranslate2-4.7.1-cp314-cp314-macosx_11_0_x86_64.whl", hash = "sha256:eecdb4ed934b384f16e8c01b185b082d6b5ffc7dcbb0b6a6eb48cd465282d957", size = 11918995, upload-time = "2026-02-04T06:12:02.875Z" }, + { url = "https://files.pythonhosted.org/packages/ac/33/b8eb3acc67bbca4d9872fc9ff94db78e6167a7ba5cd932f585d1560effc7/ctranslate2-4.7.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1aa6796edcc3c8d163c9e39c429d50076d266d68980fed9d1b2443f617c67e9e", size = 16844162, upload-time = "2026-02-04T06:12:05.099Z" }, + { url = "https://files.pythonhosted.org/packages/80/11/6474893b07121057035069a0a483fe1cd8c47878213f282afb4c0c6fc275/ctranslate2-4.7.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24c0482c51726430fb83724451921c0e539d769c8618dcfd46b1645e7f75960d", size = 38966728, upload-time = "2026-02-04T06:12:07.923Z" }, + { url = "https://files.pythonhosted.org/packages/94/88/8fc7ff435c5e783e5fad9586d839d463e023988dbbbad949d442092d01f1/ctranslate2-4.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:76db234c0446a23d20dd8eeaa7a789cc87d1d05283f48bf3152bae9fa0a69844", size = 19100788, upload-time = "2026-02-04T06:12:10.592Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b3/f100013a76a98d64e67c721bd4559ea4eeb54be3e4ac45f4d801769899af/ctranslate2-4.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:058c9db2277dc8b19ecc86c7937628f69022f341844b9081d2ab642965d88fc6", size = 1280179, upload-time = "2026-02-04T06:12:12.596Z" }, + { url = "https://files.pythonhosted.org/packages/39/22/b77f748015667a5e2ca54a5ee080d7016fce34314f0e8cf904784549305a/ctranslate2-4.7.1-cp314-cp314t-macosx_11_0_x86_64.whl", hash = "sha256:5abcf885062c7f28a3f9a46be8d185795e8706ac6230ad086cae0bc82917df31", size = 11940166, upload-time = "2026-02-04T06:12:14.054Z" }, + { url = "https://files.pythonhosted.org/packages/7d/78/6d7fd52f646c6ba3343f71277a9bbef33734632949d1651231948b0f0359/ctranslate2-4.7.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9950acb04a002d5c60ae90a1ddceead1a803af1f00cadd9b1a1dc76e1f017481", size = 16849483, upload-time = "2026-02-04T06:12:17.082Z" }, + { url = "https://files.pythonhosted.org/packages/40/27/58769ff15ac31b44205bd7a8aeca80cf7357c657ea5df1b94ce0f5c83771/ctranslate2-4.7.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1dcc734e92e3f1ceeaa0c42bbfd009352857be179ecd4a7ed6cccc086a202f58", size = 38949393, upload-time = "2026-02-04T06:12:21.302Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5c/9fa0ad6462b62efd0fb5ac1100eee47bc96ecc198ff4e237c731e5473616/ctranslate2-4.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:dfb7657bdb7b8211c8f9ecb6f3b70bc0db0e0384d01a8b1808cb66fe7199df59", size = 19123451, upload-time = "2026-02-04T06:12:24.115Z" }, +] + [[package]] name = "distro" version = "1.9.0" @@ -218,6 +280,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, ] +[[package]] +name = "faster-whisper" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "av" }, + { name = "ctranslate2" }, + { name = "huggingface-hub" }, + { name = "onnxruntime" }, + { name = "tokenizers" }, + { name = "tqdm" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/99/49ee85903dee060d9f08297b4a342e5e0bcfca2f027a07b4ee0a38ab13f9/faster_whisper-1.2.1-py3-none-any.whl", hash = "sha256:79a66ad50688c0b794dd501dc340a736992a6342f7f95e5811be60b5224a26a7", size = 1118909, upload-time = "2025-10-31T11:35:47.794Z" }, +] + [[package]] name = "ffmpeg-python" version = "0.2.0" @@ -230,6 +308,32 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d7/0c/56be52741f75bad4dc6555991fabd2e07b432d333da82c11ad701123888a/ffmpeg_python-0.2.0-py3-none-any.whl", hash = "sha256:ac441a0404e053f8b6a1113a77c0f452f1cfc62f6344a769475ffdc0f56c23c5", size = 25024, upload-time = "2019-07-06T00:19:07.215Z" }, ] +[[package]] +name = "filelock" +version = "3.25.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/b8/00651a0f559862f3bb7d6f7477b192afe3f583cc5e26403b44e59a55ab34/filelock-3.25.2.tar.gz", hash = "sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694", size = 40480, upload-time = "2026-03-11T20:45:38.487Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759, upload-time = "2026-03-11T20:45:37.437Z" }, +] + +[[package]] +name = "flatbuffers" +version = "25.12.19" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl", hash = "sha256:7634f50c427838bb021c2d66a3d1168e9d199b0607e6329399f04846d42e20b4", size = 26661, upload-time = "2025-12-19T23:16:13.622Z" }, +] + +[[package]] +name = "fsspec" +version = "2026.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/cf/b50ddf667c15276a9ab15a70ef5f257564de271957933ffea49d2cdbcdfb/fsspec-2026.3.0.tar.gz", hash = "sha256:1ee6a0e28677557f8c2f994e3eea77db6392b4de9cd1f5d7a9e87a0ae9d01b41", size = 313547, upload-time = "2026-03-27T19:11:14.892Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl", hash = "sha256:d2ceafaad1b3457968ed14efa28798162f1638dbb5d2a6868a2db002a5ee39a4", size = 202595, upload-time = "2026-03-27T19:11:13.595Z" }, +] + [[package]] name = "future" version = "1.0.0" @@ -248,6 +352,38 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] +[[package]] +name = "hf-xet" +version = "1.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/92/ec9ad04d0b5728dca387a45af7bc98fbb0d73b2118759f5f6038b61a57e8/hf_xet-1.4.3.tar.gz", hash = "sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113", size = 670477, upload-time = "2026-03-31T22:40:07.874Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/43/724d307b34e353da0abd476e02f72f735cdd2bc86082dee1b32ea0bfee1d/hf_xet-1.4.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:7551659ba4f1e1074e9623996f28c3873682530aee0a846b7f2f066239228144", size = 3800935, upload-time = "2026-03-31T22:39:49.618Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d2/8bee5996b699262edb87dbb54118d287c0e1b2fc78af7cdc41857ba5e3c4/hf_xet-1.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bee693ada985e7045997f05f081d0e12c4c08bd7626dc397f8a7c487e6c04f7f", size = 3558942, upload-time = "2026-03-31T22:39:47.938Z" }, + { url = "https://files.pythonhosted.org/packages/c3/a1/e993d09cbe251196fb60812b09a58901c468127b7259d2bf0f68bf6088eb/hf_xet-1.4.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:21644b404bb0100fe3857892f752c4d09642586fd988e61501c95bbf44b393a3", size = 4207657, upload-time = "2026-03-31T22:39:39.69Z" }, + { url = "https://files.pythonhosted.org/packages/64/44/9eb6d21e5c34c63e5e399803a6932fa983cabdf47c0ecbcfe7ea97684b8c/hf_xet-1.4.3-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:987f09cfe418237812896a6736b81b1af02a3a6dcb4b4944425c4c4fca7a7cf8", size = 3986765, upload-time = "2026-03-31T22:39:37.936Z" }, + { url = "https://files.pythonhosted.org/packages/ea/7b/8ad6f16fdb82f5f7284a34b5ec48645bd575bdcd2f6f0d1644775909c486/hf_xet-1.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:60cf7fc43a99da0a853345cf86d23738c03983ee5249613a6305d3e57a5dca74", size = 4188162, upload-time = "2026-03-31T22:39:58.382Z" }, + { url = "https://files.pythonhosted.org/packages/1b/c4/39d6e136cbeea9ca5a23aad4b33024319222adbdc059ebcda5fc7d9d5ff4/hf_xet-1.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2815a49a7a59f3e2edf0cf113ae88e8cb2ca2a221bf353fb60c609584f4884d4", size = 4424525, upload-time = "2026-03-31T22:40:00.225Z" }, + { url = "https://files.pythonhosted.org/packages/46/f2/adc32dae6bdbc367853118b9878139ac869419a4ae7ba07185dc31251b76/hf_xet-1.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:42ee323265f1e6a81b0e11094564fb7f7e0ec75b5105ffd91ae63f403a11931b", size = 3671610, upload-time = "2026-03-31T22:40:10.42Z" }, + { url = "https://files.pythonhosted.org/packages/e2/19/25d897dcc3f81953e0c2cde9ec186c7a0fee413eb0c9a7a9130d87d94d3a/hf_xet-1.4.3-cp313-cp313t-win_arm64.whl", hash = "sha256:27c976ba60079fb8217f485b9c5c7fcd21c90b0367753805f87cb9f3cdc4418a", size = 3528529, upload-time = "2026-03-31T22:40:09.106Z" }, + { url = "https://files.pythonhosted.org/packages/ec/36/3e8f85ca9fe09b8de2b2e10c63b3b3353d7dda88a0b3d426dffbe7b8313b/hf_xet-1.4.3-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5251d5ece3a81815bae9abab41cf7ddb7bcb8f56411bce0827f4a3071c92fdc6", size = 3801019, upload-time = "2026-03-31T22:39:56.651Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9c/defb6cb1de28bccb7bd8d95f6e60f72a3d3fa4cb3d0329c26fb9a488bfe7/hf_xet-1.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1feb0f3abeacee143367c326a128a2e2b60868ec12a36c225afb1d6c5a05e6d2", size = 3558746, upload-time = "2026-03-31T22:39:54.766Z" }, + { url = "https://files.pythonhosted.org/packages/c1/bd/8d001191893178ff8e826e46ad5299446e62b93cd164e17b0ffea08832ec/hf_xet-1.4.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8b301fc150290ca90b4fccd079829b84bb4786747584ae08b94b4577d82fb791", size = 4207692, upload-time = "2026-03-31T22:39:46.246Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/6790b402803250e9936435613d3a78b9aaeee7973439f0918848dde58309/hf_xet-1.4.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:d972fbe95ddc0d3c0fc49b31a8a69f47db35c1e3699bf316421705741aab6653", size = 3986281, upload-time = "2026-03-31T22:39:44.648Z" }, + { url = "https://files.pythonhosted.org/packages/51/56/ea62552fe53db652a9099eda600b032d75554d0e86c12a73824bfedef88b/hf_xet-1.4.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c5b48db1ee344a805a1b9bd2cda9b6b65fe77ed3787bd6e87ad5521141d317cd", size = 4187414, upload-time = "2026-03-31T22:40:04.951Z" }, + { url = "https://files.pythonhosted.org/packages/7d/f5/bc1456d4638061bea997e6d2db60a1a613d7b200e0755965ec312dc1ef79/hf_xet-1.4.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:22bdc1f5fb8b15bf2831440b91d1c9bbceeb7e10c81a12e8d75889996a5c9da8", size = 4424368, upload-time = "2026-03-31T22:40:06.347Z" }, + { url = "https://files.pythonhosted.org/packages/e4/76/ab597bae87e1f06d18d3ecb8ed7f0d3c9a37037fc32ce76233d369273c64/hf_xet-1.4.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0392c79b7cf48418cd61478c1a925246cf10639f4cd9d94368d8ca1e8df9ea07", size = 3672280, upload-time = "2026-03-31T22:40:16.401Z" }, + { url = "https://files.pythonhosted.org/packages/62/05/2e462d34e23a09a74d73785dbed71cc5dbad82a72eee2ad60a72a554155d/hf_xet-1.4.3-cp314-cp314t-win_arm64.whl", hash = "sha256:681c92a07796325778a79d76c67011764ecc9042a8c3579332b61b63ae512075", size = 3528945, upload-time = "2026-03-31T22:40:14.995Z" }, + { url = "https://files.pythonhosted.org/packages/ac/9f/9c23e4a447b8f83120798f9279d0297a4d1360bdbf59ef49ebec78fe2545/hf_xet-1.4.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025", size = 3805048, upload-time = "2026-03-31T22:39:53.105Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f8/7aacb8e5f4a7899d39c787b5984e912e6c18b11be136ef13947d7a66d265/hf_xet-1.4.3-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583", size = 3562178, upload-time = "2026-03-31T22:39:51.295Z" }, + { url = "https://files.pythonhosted.org/packages/df/9a/a24b26dc8a65f0ecc0fe5be981a19e61e7ca963b85e062c083f3a9100529/hf_xet-1.4.3-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08", size = 4212320, upload-time = "2026-03-31T22:39:42.922Z" }, + { url = "https://files.pythonhosted.org/packages/53/60/46d493db155d2ee2801b71fb1b0fd67696359047fdd8caee2c914cc50c79/hf_xet-1.4.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f", size = 3991546, upload-time = "2026-03-31T22:39:41.335Z" }, + { url = "https://files.pythonhosted.org/packages/bc/f5/067363e1c96c6b17256910830d1b54099d06287e10f4ec6ec4e7e08371fc/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac", size = 4193200, upload-time = "2026-03-31T22:40:01.936Z" }, + { url = "https://files.pythonhosted.org/packages/42/4b/53951592882d9c23080c7644542fda34a3813104e9e11fa1a7d82d419cb8/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba", size = 4429392, upload-time = "2026-03-31T22:40:03.492Z" }, + { url = "https://files.pythonhosted.org/packages/8a/21/75a6c175b4e79662ad8e62f46a40ce341d8d6b206b06b4320d07d55b188c/hf_xet-1.4.3-cp37-abi3-win_amd64.whl", hash = "sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021", size = 3677359, upload-time = "2026-03-31T22:40:13.619Z" }, + { url = "https://files.pythonhosted.org/packages/8a/7c/44314ecd0e89f8b2b51c9d9e5e7a60a9c1c82024ac471d415860557d3cd8/hf_xet-1.4.3-cp37-abi3-win_arm64.whl", hash = "sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47", size = 3533664, upload-time = "2026-03-31T22:40:12.152Z" }, +] + [[package]] name = "httpcore" version = "1.0.9" @@ -285,6 +421,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload-time = "2025-10-10T21:48:21.158Z" }, ] +[[package]] +name = "huggingface-hub" +version = "1.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "tqdm" }, + { name = "typer" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/28/baf5d745559503ce8d28cf5bc9551f5ac59158eafd7b6a6afff0bcdb0f50/huggingface_hub-1.10.1.tar.gz", hash = "sha256:696c53cf9c2ac9befbfb5dd41d05392a031c69fc6930d1ed9671debd405b6fff", size = 758094, upload-time = "2026-04-09T15:01:18.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/8c/c7a33f3efaa8d6a5bc40e012e5ecc2d72c2e6124550ca9085fe0ceed9993/huggingface_hub-1.10.1-py3-none-any.whl", hash = "sha256:6b981107a62fbe68c74374418983399c632e35786dcd14642a9f2972633c8b5a", size = 642630, upload-time = "2026-04-09T15:01:17.35Z" }, +] + [[package]] name = "idna" version = "3.11" @@ -381,6 +537,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, ] +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + [[package]] name = "mcp" version = "1.27.0" @@ -406,6 +574,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9c/46/f6b4ad632c67ef35209a66127e4bddc95759649dd595f71f13fba11bdf9a/mcp-1.27.0-py3-none-any.whl", hash = "sha256:5ce1fa81614958e267b21fb2aa34e0aea8e2c6ede60d52aba45fd47246b4d741", size = 215967, upload-time = "2026-04-02T14:48:07.24Z" }, ] +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + [[package]] name = "numpy" version = "2.4.4" @@ -456,6 +642,34 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/58/78/548fb8e07b1a341746bfbecb32f2c268470f45fa028aacdbd10d9bc73aab/numpy-2.4.4-cp314-cp314t-win_arm64.whl", hash = "sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7", size = 10566643, upload-time = "2026-03-29T13:21:34.339Z" }, ] +[[package]] +name = "onnxruntime" +version = "1.24.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flatbuffers" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "sympy" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/f0/8a21ec0a97e40abb7d8da1e8b20fb9e1af509cc6d191f6faa75f73622fb2/onnxruntime-1.24.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e99a48078baaefa2b50fe5836c319499f71f13f76ed32d0211f39109147a49e0", size = 17341922, upload-time = "2026-03-17T22:03:56.364Z" }, + { url = "https://files.pythonhosted.org/packages/8b/25/d7908de8e08cee9abfa15b8aa82349b79733ae5865162a3609c11598805d/onnxruntime-1.24.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4aaed1e5e1aaacf2343c838a30a7c3ade78f13eeb16817411f929d04040a13", size = 15172290, upload-time = "2026-03-17T22:03:37.124Z" }, + { url = "https://files.pythonhosted.org/packages/7f/72/105ec27a78c5aa0154a7c0cd8c41c19a97799c3b12fc30392928997e3be3/onnxruntime-1.24.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e30c972bc02e072911aabb6891453ec73795386c0af2b761b65444b8a4c4745f", size = 17244738, upload-time = "2026-03-17T22:04:40.625Z" }, + { url = "https://files.pythonhosted.org/packages/05/fb/a592736d968c2f58e12de4d52088dda8e0e724b26ad5c0487263adb45875/onnxruntime-1.24.4-cp313-cp313-win_amd64.whl", hash = "sha256:3b6ba8b0181a3aa88edab00eb01424ffc06f42e71095a91186c2249415fcff93", size = 12597435, upload-time = "2026-03-17T22:05:43.826Z" }, + { url = "https://files.pythonhosted.org/packages/ad/04/ae2479e9841b64bd2eb44f8a64756c62593f896514369a11243b1b86ca5c/onnxruntime-1.24.4-cp313-cp313-win_arm64.whl", hash = "sha256:71d6a5c1821d6e8586a024000ece458db8f2fc0ecd050435d45794827ce81e19", size = 12269852, upload-time = "2026-03-17T22:05:33.353Z" }, + { url = "https://files.pythonhosted.org/packages/b4/af/a479a536c4398ffaf49fbbe755f45d5b8726bdb4335ab31b537f3d7149b8/onnxruntime-1.24.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1700f559c8086d06b2a4d5de51e62cb4ff5e2631822f71a36db8c72383db71ee", size = 15176861, upload-time = "2026-03-17T22:03:40.143Z" }, + { url = "https://files.pythonhosted.org/packages/be/13/19f5da70c346a76037da2c2851ecbf1266e61d7f0dcdb887c667210d4608/onnxruntime-1.24.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c74e268dc808e61e63784d43f9ddcdaf50a776c2819e8bd1d1b11ef64bf7e36", size = 17247454, upload-time = "2026-03-17T22:04:46.643Z" }, + { url = "https://files.pythonhosted.org/packages/89/db/b30dbbd6037847b205ab75d962bc349bf1e46d02a65b30d7047a6893ffd6/onnxruntime-1.24.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:fbff2a248940e3398ae78374c5a839e49a2f39079b488bc64439fa0ec327a3e4", size = 17343300, upload-time = "2026-03-17T22:03:59.223Z" }, + { url = "https://files.pythonhosted.org/packages/61/88/1746c0e7959961475b84c776d35601a21d445f463c93b1433a409ec3e188/onnxruntime-1.24.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e2b7969e72d8cb53ffc88ab6d49dd5e75c1c663bda7be7eb0ece192f127343d1", size = 15175936, upload-time = "2026-03-17T22:03:43.671Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ba/4699cde04a52cece66cbebc85bd8335a0d3b9ad485abc9a2e15946a1349d/onnxruntime-1.24.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14ed1f197fab812b695a5eaddb536c635e58a2fbbe50a517c78f082cc6ce9177", size = 17246432, upload-time = "2026-03-17T22:04:49.58Z" }, + { url = "https://files.pythonhosted.org/packages/ef/60/4590910841bb28bd3b4b388a9efbedf4e2d2cca99ddf0c863642b4e87814/onnxruntime-1.24.4-cp314-cp314-win_amd64.whl", hash = "sha256:311e309f573bf3c12aa5723e23823077f83d5e412a18499d4485c7eb41040858", size = 12903276, upload-time = "2026-03-17T22:05:46.349Z" }, + { url = "https://files.pythonhosted.org/packages/7f/6f/60e2c0acea1e1ac09b3e794b5a19c166eebf91c0b860b3e6db8e74983fda/onnxruntime-1.24.4-cp314-cp314-win_arm64.whl", hash = "sha256:3f0b910e86b759a4732663ec61fd57ac42ee1b0066f68299de164220b660546d", size = 12594365, upload-time = "2026-03-17T22:05:35.795Z" }, + { url = "https://files.pythonhosted.org/packages/cf/68/0c05d10f8f6c40fe0912ebec0d5a33884aaa2af2053507e864dab0883208/onnxruntime-1.24.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa12ddc54c9c4594073abcaa265cd9681e95fb89dae982a6f508a794ca42e661", size = 15176889, upload-time = "2026-03-17T22:03:48.021Z" }, + { url = "https://files.pythonhosted.org/packages/6c/1d/1666dc64e78d8587d168fec4e3b7922b92eb286a2ddeebcf6acb55c7dc82/onnxruntime-1.24.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1cc6a518255f012134bc791975a6294806be9a3b20c4a54cca25194c90cf731", size = 17247021, upload-time = "2026-03-17T22:04:52.377Z" }, +] + [[package]] name = "openai" version = "2.30.0" @@ -551,6 +765,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "protobuf" +version = "7.34.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/6b/a0e95cad1ad7cc3f2c6821fcab91671bd5b78bd42afb357bb4765f29bc41/protobuf-7.34.1.tar.gz", hash = "sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280", size = 454708, upload-time = "2026-03-20T17:34:47.036Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7", size = 429247, upload-time = "2026-03-20T17:34:37.024Z" }, + { url = "https://files.pythonhosted.org/packages/eb/9d/aa69df2724ff63efa6f72307b483ce0827f4347cc6d6df24b59e26659fef/protobuf-7.34.1-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:5185e0e948d07abe94bb76ec9b8416b604cfe5da6f871d67aad30cbf24c3110b", size = 325753, upload-time = "2026-03-20T17:34:38.751Z" }, + { url = "https://files.pythonhosted.org/packages/92/e8/d174c91fd48e50101943f042b09af9029064810b734e4160bbe282fa1caa/protobuf-7.34.1-cp310-abi3-manylinux2014_s390x.whl", hash = "sha256:403b093a6e28a960372b44e5eb081775c9b056e816a8029c61231743d63f881a", size = 340198, upload-time = "2026-03-20T17:34:39.871Z" }, + { url = "https://files.pythonhosted.org/packages/53/1b/3b431694a4dc6d37b9f653f0c64b0a0d9ec074ee810710c0c3da21d67ba7/protobuf-7.34.1-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:8ff40ce8cd688f7265326b38d5a1bed9bfdf5e6723d49961432f83e21d5713e4", size = 324267, upload-time = "2026-03-20T17:34:41.1Z" }, + { url = "https://files.pythonhosted.org/packages/85/29/64de04a0ac142fb685fd09999bc3d337943fb386f3a0ec57f92fd8203f97/protobuf-7.34.1-cp310-abi3-win32.whl", hash = "sha256:34b84ce27680df7cca9f231043ada0daa55d0c44a2ddfaa58ec1d0d89d8bf60a", size = 426628, upload-time = "2026-03-20T17:34:42.536Z" }, + { url = "https://files.pythonhosted.org/packages/4d/87/cb5e585192a22b8bd457df5a2c16a75ea0db9674c3a0a39fc9347d84e075/protobuf-7.34.1-cp310-abi3-win_amd64.whl", hash = "sha256:e97b55646e6ce5cbb0954a8c28cd39a5869b59090dfaa7df4598a7fba869468c", size = 437901, upload-time = "2026-03-20T17:34:44.112Z" }, + { url = "https://files.pythonhosted.org/packages/88/95/608f665226bca68b736b79e457fded9a2a38c4f4379a4a7614303d9db3bc/protobuf-7.34.1-py3-none-any.whl", hash = "sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11", size = 170715, upload-time = "2026-03-20T17:34:45.384Z" }, +] + [[package]] name = "pycparser" version = "3.0" @@ -721,6 +950,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + [[package]] name = "referencing" version = "0.37.0" @@ -734,6 +999,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, ] +[[package]] +name = "rich" +version = "14.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/c6/f3b320c27991c46f43ee9d856302c70dc2d0fb2dba4842ff739d5f46b393/rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b", size = 230582, upload-time = "2026-02-19T17:23:12.474Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458, upload-time = "2026-02-19T17:23:13.732Z" }, +] + [[package]] name = "rpds-py" version = "0.30.0" @@ -800,6 +1078,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, ] +[[package]] +name = "setuptools" +version = "82.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9", size = 1152316, upload-time = "2026-03-09T12:47:17.221Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb", size = 1006223, upload-time = "2026-03-09T12:47:15.026Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + [[package]] name = "sniffio" version = "1.3.1" @@ -834,6 +1130,44 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" }, ] +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "tokenizers" +version = "0.22.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz", hash = "sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917", size = 372115, upload-time = "2026-01-05T10:45:15.988Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/97/5dbfabf04c7e348e655e907ed27913e03db0923abb5dfdd120d7b25630e1/tokenizers-0.22.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c", size = 3100275, upload-time = "2026-01-05T10:41:02.158Z" }, + { url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001", size = 2981472, upload-time = "2026-01-05T10:41:00.276Z" }, + { url = "https://files.pythonhosted.org/packages/d6/84/7990e799f1309a8b87af6b948f31edaa12a3ed22d11b352eaf4f4b2e5753/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7", size = 3290736, upload-time = "2026-01-05T10:40:32.165Z" }, + { url = "https://files.pythonhosted.org/packages/78/59/09d0d9ba94dcd5f4f1368d4858d24546b4bdc0231c2354aa31d6199f0399/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd", size = 3168835, upload-time = "2026-01-05T10:40:38.847Z" }, + { url = "https://files.pythonhosted.org/packages/47/50/b3ebb4243e7160bda8d34b731e54dd8ab8b133e50775872e7a434e524c28/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5", size = 3521673, upload-time = "2026-01-05T10:40:56.614Z" }, + { url = "https://files.pythonhosted.org/packages/e0/fa/89f4cb9e08df770b57adb96f8cbb7e22695a4cb6c2bd5f0c4f0ebcf33b66/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e", size = 3724818, upload-time = "2026-01-05T10:40:44.507Z" }, + { url = "https://files.pythonhosted.org/packages/64/04/ca2363f0bfbe3b3d36e95bf67e56a4c88c8e3362b658e616d1ac185d47f2/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b", size = 3379195, upload-time = "2026-01-05T10:40:51.139Z" }, + { url = "https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67", size = 3274982, upload-time = "2026-01-05T10:40:58.331Z" }, + { url = "https://files.pythonhosted.org/packages/1d/28/5f9f5a4cc211b69e89420980e483831bcc29dade307955cc9dc858a40f01/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4", size = 9478245, upload-time = "2026-01-05T10:41:04.053Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fb/66e2da4704d6aadebf8cb39f1d6d1957df667ab24cff2326b77cda0dcb85/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a", size = 9560069, upload-time = "2026-01-05T10:45:10.673Z" }, + { url = "https://files.pythonhosted.org/packages/16/04/fed398b05caa87ce9b1a1bb5166645e38196081b225059a6edaff6440fac/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a", size = 9899263, upload-time = "2026-01-05T10:45:12.559Z" }, + { url = "https://files.pythonhosted.org/packages/05/a1/d62dfe7376beaaf1394917e0f8e93ee5f67fea8fcf4107501db35996586b/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5", size = 10033429, upload-time = "2026-01-05T10:45:14.333Z" }, + { url = "https://files.pythonhosted.org/packages/fd/18/a545c4ea42af3df6effd7d13d250ba77a0a86fb20393143bbb9a92e434d4/tokenizers-0.22.2-cp39-abi3-win32.whl", hash = "sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92", size = 2502363, upload-time = "2026-01-05T10:45:20.593Z" }, + { url = "https://files.pythonhosted.org/packages/65/71/0670843133a43d43070abeb1949abfdef12a86d490bea9cd9e18e37c5ff7/tokenizers-0.22.2-cp39-abi3-win_amd64.whl", hash = "sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48", size = 2747786, upload-time = "2026-01-05T10:45:18.411Z" }, + { url = "https://files.pythonhosted.org/packages/72/f4/0de46cfa12cdcbcd464cc59fde36912af405696f687e53a091fb432f694c/tokenizers-0.22.2-cp39-abi3-win_arm64.whl", hash = "sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc", size = 2612133, upload-time = "2026-01-05T10:45:17.232Z" }, +] + [[package]] name = "tqdm" version = "4.67.3" @@ -846,6 +1180,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, ] +[[package]] +name = "typer" +version = "0.24.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/24/cb09efec5cc954f7f9b930bf8279447d24618bb6758d4f6adf2574c41780/typer-0.24.1.tar.gz", hash = "sha256:e39b4732d65fbdcde189ae76cf7cd48aeae72919dea1fdfc16593be016256b45", size = 118613, upload-time = "2026-02-21T16:54:40.609Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085, upload-time = "2026-02-21T16:54:41.616Z" }, +] + [[package]] name = "typing-extensions" version = "4.15.0"