Well, my issue is simple to explain, but I tried everything to solve it without success.

I like recording gameplays, just for fun. The game I currently make recordings for is not resource heavy (it’s Doom 2 through GZDoom). I’m using Lubuntu 22.04.

So, here is the command I’ve just used:

ffmpeg -f x11grab -draw_mouse 0 -framerate 30 -probesize 42M -video_size 1920x1080 -i :0 -f pulse -i default -c:v libvpx-vp9 -r 30 -g 90 -quality realtime -frame-parallel 1 -qmin 4 -qmax 48 -b:v 4500k -c:a libvorbis prueba.mkv

The issue is, if I record without including the audio, then the video plays smoothly after being recorded. But if I record including the audio, no matter what parameters, codecs, bitrate or anything I use, then the video is barely watchable, with lots of choppiness, and even with delay between audio and video, apparently.

SimpleScreenRecorder works fine, but sometimes there are few frames dropped and I don’t like it much. OBS is very heavy for my hardware (Mac Mini 2016, Intel Core i5 1.4 GHz 4260U, Intel HD Graphics 4000, 4 GB RAM).

I also tried VAAPI, with same results as above.

And the thing is that I remember recording some years ago, with no issues at all.

I don’t know what to do. Any tip or solution?

  • qjkxbmwvz@startrek.website
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 months ago

    Crazy idea, but what happens if you record audio and video with different ffmpeg processes? Just for debugging this might be useful to try. Perhaps there’s something funny about the timestamps you’re receiving from Pulse that causes weird behavior (or something along those lines).

    Also, you mentioned this works better with other software — any idea if those settings are drastically different than your ffmpeg settings?

    I have no idea what I’m talking about though, just throwing out ideas :)

    • Ignacio@kbin.socialOP
      link
      fedilink
      arrow-up
      2
      ·
      9 months ago

      Crazy idea, but what happens if you record audio and video with different ffmpeg processes?

      I also tried that with the -map parameter, if that’s what you mean. Same outcome.

      Also, you mentioned this works better with other software — any idea if those settings are drastically different than your ffmpeg settings?

      SimpleScreenRecorder is very basic, but it works well, except for some random dropped frames here and there. No big deal, but sometimes it’s noticeable enough for me to feel uneasy. 1920x1080, 60 fps, PulseAudio, H.264 video codec, ultrafast preset (skipping frames) and vorbis audio codec at 128 kbps. Just that.

      • qjkxbmwvz@startrek.website
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 months ago

        No, what I meant was to try recording video with ffmpeg, then open another terminal and record audio with ffmpeg. Does the video look ok when recorded like this?

        Also, you said you tried various codecs, what happens if you dump the raw audio (PCM?) stream without reencoding at all?

        • Ignacio@kbin.socialOP
          link
          fedilink
          arrow-up
          2
          ·
          9 months ago

          No, what I meant was to try recording video with ffmpeg, then open another terminal and record audio with ffmpeg. Does the video look ok when recorded like this?

          Well, surprisingly, it works. Video runs smoothly, and I can merge the separate audio file to it witk Kdenlive. So, I guess the problem is solved. But I don’t understand why it works this way and not with a single command in one terminal.

          • qjkxbmwvz@startrek.website
            link
            fedilink
            English
            arrow-up
            1
            ·
            9 months ago

            Weird! Yeah I don’t understand either, but this info may help in further debugging.

            Have you tried playing with the container format? I know .mkv is generally preferred but maybe try .mp4 or something else. My thinking here is that both audio and video work, but somehow muxing them is failing. Using a different container could maybe help since the muxing is different (???).

            Other thing to try is of course making sure ffmpeg is up to date but it sounds like you’re on top of that.

            Good luck!