I have been frustrated by this issue for a long time. None of the solutions posted in this thread were helpful. I have several DV-encoded files where I can not find alternative copies, and want a way to watch on Plex.
Finally I had enough and did a deep dive on the problem. It is a difficult issue due to Dolby Vision not lending itself easily to transcoding to non-DV format, and ffmpeg can not handle this natively. However, I noticed Jellyfin was able to find a solution to this problem, while Plex has not.
Luckily, Jellyfin is open source, and I was able to determine how they solved this. Specifically, they made a custom ffmpeg filter just for DV Profile 5 & 8 to allow transcoding into non-DV SDR H264. (Note to Plex Devs, see here: Add cuda/opencl tonemap support for DOVI profile5 and 8 by nyanmisaka · Pull Request #151 · jellyfin/jellyfin-ffmpeg · GitHub)
So I made a simple script that uses Jellyfin’s ffmpeg fork to manually transcode specific files that have DV encoding. You can find it here: Converts Dolby Vision Profile 5 encoded video files into format acceptable to Plex · GitHub
Notes about this solution:
- This manually transcodes a file to remove HDR and DV (but maintains 4k quality)
- This a lossy process, quality may not be identical, but good enough
- The script is designed to run on Linux command-line using Docker & NVidia GPU to handle transcoding. Other hardware or OS are not supported. (Might work on MacOS with slight tweaks?)
- This is not a high quality script, this is just a hack that solved the issue for a few files I had. (Example: The script specifically locks 21000kbps bitrate, this is for simplicity, should be enough in most cases, but must be manually adjusted if desired)
- Good news: only takes ~5-15 minutes to convert most files due to GPU acceleration
This is not a generalized solution for everyone, but I hope it at least helps a few people who come to this thread looking for a way to convert DoVi files for plex.