


In these examples a very low frame rate is used which should process faster than the default of 25 fps. Your player probably won't like it but YouTube will. YouTube accepts just about anything so these commands use a few tricks to make encoding faster, or make the file size small, and to keep quality high because YouTube will re-encode whatever you give it. ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 -c copy -shortest output.mkv It's super fast, but if size is important than the method above may produce a smaller file. This method just stream copies (no encoding) the image into the MKV container. c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest output.mkv ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 \ It is slower than the stream copy method below, but potentially will output a smaller file size. This method uses libx264 to encode H.264 video. For uploading to YouTube H.264: smallest files
