openclaw - 💡(How to fix) Fix Podcast clip videos are black — ffmpeg uses soft-subs instead of hard-burned subtitles [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#44517Fetched 2026-04-08 00:45:50
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Author
Participants

Code Example

ffprobe output:
  Stream 0 (video): h264, 1280x720, 30fps, bit_rate=9427 (static black)
  Stream 1 (audio): aac, bit_rate=153898
  Stream 2 (data): bin_data, SubtitleHandler (soft-subs, not rendered by Telegram)
RAW_BUFFERClick to expand / collapse

Problem

When OpenClaw processes audio-only podcast URLs and generates video clips with subtitle overlays, the resulting .mp4 files have:

  • Video stream: H.264, 1280x720, 30fps — but at ~9.4 kbps (essentially a static black frame)
  • Audio stream: AAC at 154 kbps (the actual podcast content — works fine)
  • Subtitle stream: Separate data track with SubtitleHandler (soft-subs)

The subtitles are added as a soft-sub data stream rather than being hard-burned onto the video frames. This means:

  1. Desktop video players that support subtitle tracks can display them, but...
  2. Telegram, WhatsApp, iMessage, and most mobile messaging apps do NOT render soft-sub tracks — users see a completely black video with only audio.

Expected behavior

When generating podcast clips from audio-only sources, ffmpeg should:

  1. Hard-burn subtitles onto the video stream using the subtitles or ass filter
  2. Ideally use a non-black background (gradient, waveform visualization, podcast artwork) so the video is not just black with text

Evidence

ffprobe output:
  Stream 0 (video): h264, 1280x720, 30fps, bit_rate=9427 (static black)
  Stream 1 (audio): aac, bit_rate=153898
  Stream 2 (data): bin_data, SubtitleHandler (soft-subs, not rendered by Telegram)

Files from tenant oc-ee6fa1, clips in /home/node/.openclaw/workspace-main/podcast_clips/segment_*.mp4

Suggested fix

Replace the ffmpeg subtitle muxing with a hard-burn filter. Instead of adding subs as a separate stream, hard-burn them onto the video so they are visible in all video players including Telegram.

extent analysis

Fix Plan

To fix the issue, we need to modify the ffmpeg command to hard-burn subtitles onto the video stream. We can use the subtitles filter for this purpose.

Step-by-Step Solution

  1. Install the required ffmpeg filters: Ensure that you have the subtitles filter installed and available in your ffmpeg setup.
  2. Modify the ffmpeg command: Update the ffmpeg command to use the subtitles filter. Here's an example:

ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=24'" output.mp4

   Replace `input.mp4` with your input audio file, `input.srt` with your subtitle file, and `output.mp4` with the desired output file name.
3. **Add a non-black background**: To add a non-black background, you can use the `color` filter to generate a background color or image, and then overlay the subtitles on top of it. Here's an example:
   ```bash
ffmpeg -i input.mp4 -filter_complex "color=c=white:s=1280x720:r=30, subtitles=input.srt:force_style='FontSize=24'" output.mp4

This will generate a white background with the subtitles overlaid on top. 4. Use a waveform visualization or podcast artwork: To use a waveform visualization or podcast artwork as the background, you can use the movie filter to overlay an image or video on top of the subtitles. Here's an example:

ffmpeg -i input.mp4 -filter_complex "movie=background.png [bg]; [bg][input] overlay, subtitles=input.srt:force_style='FontSize=24'" output.mp4

Replace background.png with your background image file.

Verification

To verify that the fix worked, you can check the output video file using a media player that supports subtitles, such as VLC. The subtitles should be hard-burned onto the video stream and visible in all video players, including Telegram.

Extra Tips

  • Make sure to adjust the font size and style of the subtitles according to your requirements.
  • You can also use other filters, such as ass or libx264, to customize the subtitle rendering.
  • If you're using a programming language to generate the ffmpeg command, make sure to escape any special characters in the command to avoid errors.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

When generating podcast clips from audio-only sources, ffmpeg should:

  1. Hard-burn subtitles onto the video stream using the subtitles or ass filter
  2. Ideally use a non-black background (gradient, waveform visualization, podcast artwork) so the video is not just black with text

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Podcast clip videos are black — ffmpeg uses soft-subs instead of hard-burned subtitles [1 participants]