Hi All,

About a year ago I transferred all my files to a new drive. I used filzezilla which did mostly ok-ish, but I didn’t notice that some of the video files were corrupted. Random files will have a green tinge to them (like someone put a green filter over the lens).

It seems random, although if it’s a series it’s usually the whole series.

I’ve been replacing them as they come up, but I was wondering if anyone had any bright ideas to expedite the process.

Thanks for any help!

  • @batmaniamOP
    link
    English
    14 months ago

    this looks like it may be helpful, but I’m not super clear on what it does exactly. It looks like it does conditional transcoding, but I’m not clear on what that means. Would this screw with plexs own traditional transcoding? Or does it attempt to repair a file by transcoding.

    Thank you for the input!

    • @Fribbtastic
      link
      English
      34 months ago

      The health check that Tdarr can do depend on what health check you select, the “quick” health check will only check the file headers. This probably won’t find any video corruption unless the file headers are corrupted or invalid.

      The thourough health check will basically do a transcode of the input file without an output. This is being used to run and check each single frame of the file and “process” it without actually producing an output. https://trac.ffmpeg.org/wiki/Null

      Would this screw with plexs own traditional transcoding?

      No, Plex and Tdarr are two completely different things.

      Transcoding is not some universal thing but rather a term to describe what is happening. In general “transcoding” means that you convert something from one format into another.

      When you use the processing pipeline through Tdarr, it would detect a file in your library and run it through your specified pipeline. Depending on what you want to do with the file and how the pipeline is configured, it might or might not do anything with that specific file. When you, for example, configure that you want any file that has a video stream that isn’t encoded with HEVC to be HEVC then a H.264 file would then be transcoded.

      This is on a “replacement” bases, so any file you run through this would replace the existing file in your library. Meaning: you have a H.264 file before tdarrs processing and after it is finished, you have the file with HEVC as video stream.

      With the health check, as explained above, this is a bit different since you don’t have an ouput file, there is also no replacement happening. It is just a “check” that the file can be transcoded in its entirety (with a thourough health check).

      When Plex transcodes something, this is done “on the fly”. This means that it only transcodes the current file in your library.

      Technically, tdarr could “screw” with the Plex transcoder when Tdarr processes a file while you yourself watch the same file that is then transcoded by plex. When Tdarr is finished, it would replace the file which then could throw off the Plex transcoder. But this is very rare or non existent and you could even configure tdarr to do those things only at a certain time and it wouldn’t happen with health checks. as someone who runs both, I have yet to come across something like this.

      Or does it attempt to repair a file by transcoding

      As the name suggests, health checks are only “checking” if the file is healthy, there is nothing being repaired here. While you might be able to repair the file header, a corrupted video or audio is not something you can repair because of missing information. But that is nothing that Tdarr will do anyway, it just verifies/checks if it is healthy or not.

      • @batmaniamOP
        link
        English
        14 months ago

        Thank you for the walkthrough! I was loosely familiar with how transcoding worked, but wasn’t sure if this specific library (tdarr) was coded in a way it became a “default” tool to replace plexs transcoding. My background is in small embedded systems for the most part, and I’ve gotten burned by tools which by default set themselves up to be the, well, default. I’m just used to dealing with much smaller pipelines/stacks.

        Based on another response it looks like the issue may actually be around some HDR formatting. I could see that as after I transferred the new machine was using a completely different hardware set, including GPU.

        Thanks to you and everyone for walking be through a new tool! If it is an HDR format issue, I imagine I may be able to use Tdarr to address it.

    • @Cromulons
      link
      English
      2
      edit-2
      4 months ago

      Tdarr has many usages revolving around transcoding. I use it for space optimization mainly but you can build your own workflow/pipeline to only do integrity checks… It will check that the file is eligible prior to attempting to transcode and check new files added to your library as Tdarr is designed to run continuously, checking and transcoding as configured. I’m not sure it is relevant to your specific issue but you could try the handbrake/ffmpeg health checks commands outside of Tdarr first on a file you know has the problem and if it works, automate the thing through Tdarr to do the same check on the entire folder/library. This would only help you in flagging them. I’m not sure about repairing though and usually I would look for a new version in case of issues. The question on the transcoding behavior is complex to answer as it depends on hardware on both server and client but you could run Tdarr without changing anything on this side. Please do go through the Tdarr documentation before actually running it across your entire library. My concern is that on my library none came back with a failed health check while a few do fail during transcode to x265 so again I don’t know if that will work for you.

      • @batmaniamOP
        link
        English
        14 months ago

        Thanks for explaining, but I still want to make sure I understand the purpose of Tdarr. One thing I’ve noticed about tools like this is the documentation usually gets right into the “how” and skips over the “what and why”. So Tdarr transcodes a library with intention of a new, permanent output library? Is that correct? I’m used to transcoding in the context Plex does it: On the fly to serve to a client, and temporary.

        If my understanding is correct then maybe it’ll help address issues, but still an awesome tool to help optimize my library.

        Thanks for taking the time. Most of my coding background is mostly from monitoring and control, so I’m still learning a lot about the nuts and bolts of the whole stack that makes stuff like plex work.