TankieTube is out of "beta" and everyone's invited! feast-1feast-2

Definitions:

  • TT = TankieTube
  • PT = PeerTube
  • YT = YouTube

OpSec

  • Email - Make sure to register using an email detached from your legal identity (remember Stonetoss?).

    The software requires an email address, however, I've disabled the verification requirement. This means you can register using something like cum@fart.com and it will totally work—unless the address is already taken (in which case you should get better material!).

    You would need a real address, of course, to have the option of resetting your password. The only other thing I use email for is explaining and notifying users of any moderator actions I take against them, as a courtesy.


  • P2P - The peer-to-peer feature allows the software to scale tremendously well when serving the same viral video to many people at the same time (supposedly at least 1000 concurrent viewers, easily, with a wimpier server than ours).

    A downside of the feature is that it can reveal your IP to a subset of people watching the same video at the same time as you. [Read more]. Therefore, it is recommended to either:

    1. Use a VPN. Or,
    2. Deselect the P2P participation feature in the user settings menu.

Federation

TT users can search and view any videos from instances on the subscriptions list, and the instances following TT can view our vids. I occasionally browse the public index and look for new instances to follow (sometimes they're a bust). LMK if you find any cool ones.

Mirroring vids, as in multiple copies on multiple servers, is done when instances implement something called redundancy, but I haven't looked into that much yet.


Fifty Channels!

The major difference from YT is that TT users can create up to fifty (50) channels (the default is 20 but I bumped it up). Channels are analogous to Lemmy communities, except that PT doesn't yet support shared channels with more than one author/user (I believe it's a planned feature). Create a channel for every weird niche topic that you want!

I'll eventually create a style guide. If you want to sync or archive a YT channel, then I'd prefer that you create a unique TT channel that corresponds to it for better organization.

PT has an automatic channel syncing feature, but I have it turned off right now because it was overloading the transcoding queue.


The TankieTube Homepage

The YT homepage is built by a sinister algorithm customized to distract and exploit you. The TT homepage contains whatever-the-fuck HTML I choose to type with my paws. Determining what to put on it will be a big and ongoing decision. If you've made a channel relevant to the site's theme, send me a message and I'll probably pin it!


About the Outro

The music is La Danse Des Bombes, a great song about the ecstasy of armed combat in defense of the Paris Commune of 1871, which I discovered thanks to comrade exotiquematter@tankie.tube. PT is French software, so I think that's neat.

The sound effects are sampled from a video of the Al-Qassam Brigade resistance fighters in live armed combat against Israeli occupation forces. The sound effects correspond to a :hamas-red-triangle: hamas-red-triangle scene in the video.

Underneath it all is a 140bpm beat by "K1 The Producer".


History & Goals

I started out with a $15/mo VPS (run by Nazis, as it turned out) and have migrated/upgraded the server twice since then. It's now using the most powerful dedicated server available from Freakhosting at ~$230/mo💰🥴, because I wanted it to not suck. It has a Ryzen 9 7950x3D, which is ~32 times as fast as the first server. It still doesn't have the transcoding throughput to keep up with YT syncing without creating a double-digit hour backlog.

The transcoding power can be boosted by renting additional servers for use as remote runners. It all depends on the amount of support the project can get...

Donation Link 🥺👉👈

I'm afraid to add it up, but I'm sure I've sunk at least $600 into various TT expenses since I registered the domain on 2023-10-27 and started playing around. I didn't want to ask for donations until I was sure I knew what I was doing.

Another goal: making the PT vids embed properly in Lemmy!

  • TankieTanuki [he/him]
    cake
    hexagon
    ·
    edit-2
    3 days ago

    It really benefits from the CPU. It means you can publish an hour-long video in minutes instead of hours. I have one user on the site who uploads a lot of topical content daily, and he really appreciates the prompt processing. About three dozen people from his country have registered in the past couple weeks, presumably from word-of-mouth or casual discovery. I hope I don't have to downgrade. I'm also on the public list of PT instances, so random people have registered too.

    • Barx [none/use name]
      ·
      3 days ago

      You may want to look into a bare metal server with a GPU. It may actually cost less for better performance. I would expect transcoding, storage, and bandwidth to be the major costs.

      Hetzner (I don't know if they are the Nazi hosts sorry) is a trusted bare metal provider if you still want cloud convenience. If you route traffic through a bastion you can probably operate without Hetzner having any idea what you are doing, either, which could be nice for longevity - if your bastion (the public IP seen by the world) cracks down on you, just get another and update DNS records.

      Anyways this is awesome, thank you for doing this. Let me know if you need or want any technical assistance!

      • TankieTanuki [he/him]
        cake
        hexagon
        ·
        edit-2
        3 days ago

        No, it wasn't Hetzner.

        Yes, transcoding and storage are the major costs. The storage is practically infinitely scaleable. Bandwidth isn't too much of an issue at this size. The real challenge is the CPU. The server has 128GB RAM and it only uses like 2GB.

        I haven't played much with GPUs. I thought they were just for bitcoin, AI, and vidya. Tell me more.

        • Barx [none/use name]
          ·
          2 days ago

          As a heads up, the user Ideology has pointed out that Hetzner has been taking down queer Mastodon servers so it's one to avoid.

          Transcoding is often the main computational work of video streaming and GPUs can make this much faster because many of them have hardware transcoding built-in. For example, the basic GPUs built into consumer intel chips (and not server chips) often have H.264 hardware transcoding capabilities. If you make the right interfaces available to the software that wants to transcode, it will transcode a h.264 video 5-10X faster without really hitting the CPU.

            • Barx [none/use name]
              ·
              2 days ago

              If the card supports it, it will show up as a direct rendering interface under /dev. Something like /dev/dri/card0.

              Its presence, name, and capabilities will depend on:

              • The GPU itself

              • Whether the kernel modules are loaded

              • Whether those kernel modules support the device in this way.

              The first step I would recommend is doing lspci to see what GPUs are available.

              • TankieTanuki [he/him]
                cake
                hexagon
                ·
                2 days ago

                I see two VGA entries.

                spoiler
                $ lspci
                00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14d8
                00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Device 14d9
                00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14da
                00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14db
                00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14da
                00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14db
                00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14db
                00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14da
                00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14da
                00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14da
                00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14dd
                00:08.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14dd
                00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 71)
                00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
                00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14e0
                00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14e1
                00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14e2
                00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14e3
                00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14e4
                00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14e5
                00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14e6
                00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14e7
                01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO
                02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Upstream Port (rev 01)
                03:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
                03:01.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
                03:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
                03:03.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
                03:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
                03:08.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
                03:0c.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
                03:0d.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
                05:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
                06:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
                07:00.0 PCI bridge: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge (rev 06)
                08:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 52)
                0b:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset USB 3.2 Controller (rev 01)
                0c:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset SATA Controller (rev 01)
                0d:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO
                0e:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Raphael (rev c9)
                0e:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller
                0e:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] VanGogh PSP/CCP
                0e:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15b6
                0e:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15b7
                0e:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] ACP/ACP3X/ACP6x Audio Coprocessor (rev 62)
                0e:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller
                0f:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15b8
                
                
                • Barx [none/use name]
                  ·
                  edit-2
                  2 days ago

                  Looks like a Zen 4. The ASPEED is really basic, it is just there so that you can plug a monitor into a server. But the other VGA device is the iGPU for the Zen 4 (Raphael) so it should support transcoding per VCN 3.1 https://en.m.wikipedia.org/wiki/Video_Core_Next

                  So overall, good news! The iGPU likely will help with performance. I'm not sure what the cost vs. performance ratio is for a dedicated GPU in this situation but it is probably useful to try out this iGPU to see if it helps!

                  The next steps might be fiddly or might work automagically. If all goes well you can just figure out which /dev device is the right one (I'm guessing there's card0 and card1) and provide this info to whatever software configures transcoding on this platform (I've never run peertube). If things don't work right away you may need to fiddle with kernel modules and iommu things requiring restarts. I've had to do something similar before but I did require isolatating the GPU to its own iommu, but that was specifically for virtualization do you may not need to go that far.

                  If you do need to troubleshoot it will probably be about this exact iGPU's kernel module settings. Happy to help with any troubleshooting!

                  • TankieTanuki [he/him]
                    cake
                    hexagon
                    ·
                    2 days ago

                    whatever software configures transcoding on this platform

                    ffmpeg. Their docs say that hardware encoding isn't as good; so that concerns me.

                    • Barx [none/use name]
                      ·
                      2 days ago

                      That's a good point! I don't know if the platform allows you to configure ffmpeg very deeply but you may be able to tell it to do decode only.

                      I guess it also depends on how the platform works when it comes to encoding. Does it pre-encode a set of videos and take a storage hit in exchange for only encoding once? Maybe it isn't so bad to use CPU. Is there a lot of reencoding on-the-fly to save space? Maybe it isn't so bad to have a hardware-encoded stream.

                      Quality of encoding is also one of those things where it only matters in certain cases depending on what quality means. If you are encoding something to use as an archive, like a blu-ray to h.265 and the h.265 will be your main file for personal use, then you may want a very nice encoding. Or if you did something none of us would ever condone like making a sharing a high quality rip.

                      On the other hand if is just encoding from, say, 4K to 720p to save bandwidth for a mobile stream, it (1) won't need to limit the quality of your archived highest-resolution video (this could either be a rae source file or a high quality software encoding) and (2) may be sufficiently high quality with a hardware encoding that nobody will ever notice the difference from a software encode. I've done personal-use on-the-fly transcoding exactly like this and have never noticed a quality problem that wasn't just "oh the client selected 480p for me" and could be fixed by selecting a higher resolution.

                      • TankieTanuki [he/him]
                        cake
                        hexagon
                        ·
                        2 days ago

                        PT pre-encodes everything at multiple resolutions. No reencoding on-the-fly.

                        • Barx [none/use name]
                          ·
                          2 days ago

                          Nice! Maybe just something to keep in your back pocket if the CPU keeps maxing out for long periods then.

        • makotech222 [he/him]
          ·
          2 days ago

          uhh yeah thats what gpus are built for essentially. its probably like 1000x faster than an equivalent cpu.

            • mbt2402 [none/use name]
              ·
              3 days ago

              https://trac.ffmpeg.org/wiki/HWAccelIntro would seem to indicate that the AMF encoder provides amd gpu support. https://github.com/Chocobozzz/PeerTube/issues/938 https://docs.joinpeertube.org/contribute/plugins#add-new-transcoding-profiles

              • TankieTanuki [he/him]
                cake
                hexagon
                ·
                2 days ago

                Jorropo commented Aug 31, 2020

                @karibuTW it's also that ffmpeg is CPU focused, don't except any huge improvement by GPU acceleration.

                Is that true?

                Hardware encoders typically generate output of significantly lower quality than good software encoders like x264, but are generally faster and do not use much CPU resource. (That is, they require a higher bitrate to make output with the same perceptual quality, or they make output with a lower perceptual quality at the same bitrate.)

                capitaldcolon

                • mbt2402 [none/use name]
                  ·
                  2 days ago

                  i get ~5-10x speedup with nvenc for h264, can't speak to the quality of the amd or av1 stuff. the quality of motion etc is worse at low bit rates but i think above a few mbps at 1080p its not that much of a difference.

            • loathesome dongeater@lemmygrad.ml
              ·
              3 days ago

              I'm not sure. I peered through peertube docs and they surprisingly do not tell specifically what kind of hardware you need for transcoding. All they talk about is offloading intensive tasks like transcoding to runners but again don't talk about the the hardware requirement.