Reputation: 765
I generated a bar chart race using the Flourish Studio website and captured the frames as a PDF sequence using a Python Playwright script. Then, I converted all the PDF files into SVG format using the following Python script, because SVG is the only image format that maintains quality without loss when zoomed in:
import os
import subprocess
import multiprocessing
# Define paths
pdf2svg_path = r"E:\Desktop\dist-64bits\pdf2svg.exe" # Full path to pdf2svg.exe
input_dir = r"E:\Desktop\New folder (4)\New folder"
output_dir = r"E:\Desktop\New folder (4)\New folder (2)"
# Ensure output directory exists
os.makedirs(output_dir, exist_ok=True)
def convert_pdf_to_svg(pdf_file):
""" Convert a single PDF file to SVG. """
input_pdf = os.path.join(input_dir, pdf_file)
output_svg = os.path.join(output_dir, os.path.splitext(pdf_file)[0] + ".svg")
try:
subprocess.run([pdf2svg_path, input_pdf, output_svg], check=True)
print(f"Converted: {pdf_file} -> {output_svg}")
except FileNotFoundError:
print(f"Error: Could not find {pdf2svg_path}. Make sure the path is correct.")
except subprocess.CalledProcessError:
print(f"Error: Conversion failed for {pdf_file}")
if __name__ == "__main__":
# Get list of PDF files in input directory
pdf_files = [f for f in os.listdir(input_dir) if f.lower().endswith(".pdf")]
# Use multiprocessing to speed up conversion
with multiprocessing.Pool(processes=multiprocessing.cpu_count()) as pool:
pool.map(convert_pdf_to_svg, pdf_files)
print("All conversions completed!")
Problem:
Now, I want to use these SVG images in FFmpeg to create a high-quality video file. However, FFmpeg does not support SVG files directly, and I have read that I must convert SVG files into PNG before using them in FFmpeg. The problem is that PNG images reduce quality, especially when zooming in, which is why I want to avoid converting to PNG.
Is there any way to use SVG files directly in FFmpeg or another method to convert them into a high-quality video while maintaining full resolution? Any ideas or suggestions would be greatly appreciated!
Upvotes: -1
Views: 40