Need advice for a good .ogv video converter/editor.

eXtease

Newbie
Apr 19, 2021
27
44
Hi all.

I am new to renPy and during my recent experiments with its video feature I noticed that the .ogv file format works seamlessly while .avi and the rest are more of a hit and miss (some play, others show black screens, other don't even load).

I am a fan of the .ogg sound file format, so I have no problems converting my future video files to the open .ogv format. But the issue is finding a good video converter.

So far I've tried converting the files using online video converters. The results were total failures. Some have a small file size cap, others have low quality and some ask for money or subscriptions for this file format.

I also tried VideoPad Video Editor (the free version), and on each conversion I get screen artifacts (lines, dots, compression squares).
And another fail was Lightworks. This one has the .ogv file format when you try converting an .mp4 to .ogv it does absolutely nothing. No progress bar, no movements, nothing.

So the question is, do you know a good video/editing software that can take an .avi or .mp4 and create a high quality .ogv video file?
And what do you use (if you use .ogv of course).

Thank you for your help.
 

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,584
2,227
Generally the restriction is Android devices, since they support a limited number of codecs (A very large set, but still not all the commonly used ones).

Keep in mind that .mp4 is only a container file. It's a wrapper around the actual video/audio/subtitle tracks. And it's those tracks that sometimes work and sometimes won't. It's why some MP4 files will work on Android and not others... it's not the file format, just the codec that was encoded within it.

It's not the answer to your actual question, but I tend to use . Then I convert everything (including existing MP4 files) to MP4 using H.264 video codec and AAC audio codec. H.264 and AAC work practically everywhere and whilst they don't create files quite as small as some of the new codecs, it's also a lower CPU overhead than the newer codecs too. Handbrake also added .webm support for VP8 and VP9 codecs too. Since Google wrote those, most Android devices will support at least VP8 even on very old devices. Handbrake had a "quality" setting that scales from effectively lossless to horrid... Constant Quality of 18 (better) thru 25 (lower) is usually good enough to avoid artifacting with most AVN game video. I use 20 unless I spot something specific, at which point I use 18.

btw. Good luck after trying VideoPad. NCHSoftware are like roaches once they get their hooks into your system. Not strictly malware, but expect to see lots of context menus within Windows Explorer showing NCH products you haven't installed. I use their WavePad for audio editing and it took me a while to clean up all the extra crap it tried to push at me.
 
Last edited:
  • Like
Reactions: Cul

eXtease

Newbie
Apr 19, 2021
27
44
I see, that explains a lot. I'm a complete noobie on video formats.

I will surely give Handbrake a go, so far looks quite simple and intuitive.
Thanks for the heads up on the VideoPad. I'll make sure to scan the system after uninstalling that one.
Thank you.
 

AnimeKing314

Giant Perv
Game Developer
Jun 28, 2018
395
597
Rather than relying on online converters I usually go with coding solutions. Currently I have code using opencv to convert a series of images into a webm video (I've gone with webm but I'm sure ogv is supported as well). For converting videos you already have ffmpeg is a good solution. instructions for using ffmpeg to convert. In general it's set up to be used in linux but can be set up in windows as well, I just have to look for the instructions again. Also here's my code for taking an image series and creating a webm video from it:

Python:
import cv2
import os
from datetime import datetime

image_folder = 'E:/Koikatsu/UserData/cap/anim'
video_name = datetime.now().strftime("%m-%d-%Y-%H-%M-%S") + '-video.webm'

images = [img for img in os.listdir(image_folder) if img.endswith(".png")]
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape

fourcc = cv2.VideoWriter_fourcc(*'VP90')
video = cv2.VideoWriter(video_name, fourcc, 15, (width,height))

for image in images:
    video.write(cv2.imread(os.path.join(image_folder, image)))

cv2.destroyAllWindows()
video.release()
You would just have to change the codec in the fourcc line, the name of the video, and the image folder to whatever suits you.