Worker: pass input frame rate to FFmpeg when converting frames to video
FFmpeg needs the input frame rate as well, otherwise it'll default to 25 FPS, and mysteriously drop frames when rendering a 24 FPS shot.
This commit is contained in:
parent
de80a09223
commit
d553ca5ab9
@ -214,6 +214,9 @@ func (p *CreateVideoParams) getInputGlob() ([]string, func(), error) {
|
||||
}
|
||||
|
||||
cliArgs := []string{
|
||||
// FFmpeg needs the input frame rate as well, otherwise it'll default to 25
|
||||
// FPS, and mysteriously drop frames when rendering a 24 FPS shot.
|
||||
"-r", strconv.FormatFloat(p.fps, 'f', -1, 64),
|
||||
"-pattern_type", "glob",
|
||||
"-i", crosspath.ToSlash(p.inputGlob),
|
||||
}
|
||||
|
@ -42,10 +42,11 @@ func TestCmdFramesToVideoSimplePosix(t *testing.T) {
|
||||
|
||||
cliArgs := []string{
|
||||
"-v", "quiet", // exe
|
||||
"-report", // argsBefore
|
||||
"-report", // argsBefore
|
||||
"-r", "10", // input frame rate
|
||||
"-pattern_type", "glob", "-i", "path/to/renders/*.png", // inputGlob
|
||||
"-c:v", "hevc", "-crf", "31", "-vf", "pad=ceil(iw/2)*2:ceil(ih/2)*2", // args
|
||||
"-r", "10", // fps
|
||||
"-r", "10", // output frame rate
|
||||
"path/to/renders/preview.mkv", // outputFile
|
||||
}
|
||||
mocks.cli.EXPECT().CommandContext(gomock.Any(), "/path/to/ffmpeg", cliArgs).Return(nil)
|
||||
|
Loading…
Reference in New Issue
Block a user