Hi, I'm trying to perform framerate conversion of a video, from 24fps to
25fps to be precise.
The source is mov, ProRes with multichannel audio at 48kHz.
It is mandatory for my application to preserve the integrity of all frames,
i.e. no frame-interpolation or duplication should occur.
In other words, just the playback speed should be increased from 24 to 25,
resulting in a video of slightly shorter duration.
I've been partially successful so far using the command
ffmpeg -r 25 -i -r 25 -c:v prores -profile:v 3 -c:a
pcm_s24le
This comand produces a good video, shorter than the original, but the
problem is with audio. As you can imagine, the audio drifts out of sync
because it has no knowledge of the video framerate conversion.
My solution now is to process the audio externally, in an audio editor. I
must apply a sample rate conversion, first forcing the sample rate metadata
to 50.000 Hz (48.000 *(25/24)) and then resampling at 48.000 Hz
This shortens the audio by the same amount as the video and can be merged
to it.
Is there any way to perform this audio processing within ffmpeg?
Thanks!
ffmpeg -r 25 -i input.mov -r 25 -c:v prores -profile:v 3 -c:a pcm_s24le
output_25fps.mov
ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
built with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.7.2_1 --enable-shared
--enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables
--enable-avresample --cc=clang --host-cflags= --host-ldflags=
--enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc
--enable-libxvid --enable-libfreetype --enable-libvorbis --enable-libvpx
--enable-libass --enable-ffplay --enable-libfdk-aac --enable-libopus
--enable-libquvi --enable-libx265 --enable-libopenjpeg
--extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 '
--enable-nonfree --enable-vda
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat56. 36.100 / 56. 36.100
libavdevice56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc53. 3.100 / 53. 3.100
Guessed Channel Layout for Input Stream #0.1 : mono
Guessed Channel Layout for Input Stream #0.2 : mono
Guessed Channel Layout for Input Stream #0.3 : mono
Guessed Channel Layout for Input Stream #0.4 : mono
Guessed Channel Layout for Input Stream #0.5 : mono
Guessed Channel Layout for Input Stream #0.6 : mono
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2016-10-11 12:30:25
Duration: 00:01:49.04, start: 0.00, bitrate: 150503 kb/s
Stream #0:0(eng): Video: prores (apch / 0x68637061),
yuv422p10le(bt709), 1920x1080, 143548 kb/s, SAR 1:1 DAR 16:9, 24 fps, 24
tbr, 24 tbn, 24 tbc (default)
Metadata:
creation_time : 2016-10-11 12:30:25
handler_name: Apple Alias Data Handler
encoder : Apple ProRes 422 HQ
timecode: 00:00:00:00
Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1
channels, s32 (24 bit), 1152 kb/s (default)
Metadata:
creation_time : 2016-10-11 12:30:25
handler_name: Apple Alias Data Handler
Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1
channels, s32 (24 bit), 1152 kb/s (default)
Metadata:
creation_time : 2016-10-11 12:30:25
handler_name: Apple Alias Data Handler
Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1
channels, s32 (24 bit), 1152 kb/s (default)
Metadata:
creation_time : 2016-10-11 12:30:25
handler_name: Apple Alias Data Handler
Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1
channels, s32 (24 bit), 1152 kb/s (default)
Metadata:
creation_time : 2016-10-11 12:30:25
handler_name: Apple Alias Data Handler
Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1
channels, s32 (24 bit), 1152 kb/s (default)
Metadata:
creation_time : 2016-10-11 12:30:25
handler_name: Apple Alias Data Handler
Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1
channels, s32 (24 bit), 1152 kb/s (default)
Metadata:
creation_time : 2016-10-11 12:30:25
handler_name: Apple Alias Data Handler
Stream #0:7(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2016-10-11 12:32:09
handler_name: Apple Alias Data Handler
timecode: 00:00:00:00
File 'output_25fps.mov' already exists. Overwrite ? [y/N] y
Output #0, mov, to 'output_25fps.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
encoder : Lavf56.36.100