I’ve got ffmpeg working well for converting high resolution footage down to lower resolution and it’s quite fast with using ‘copy’ for the audio channel. (Thanks NVIDIA!!)
For example converging a 950MB, 60 minute file with:
time /usr/local/bin/ffmpeg -y -i large.mp4 -filter_complex nvresize=1:s=cif -vcodec nvenc_h264 -aspect 16:9 -b:v 300K -acodec copy smaller.mp4
takes about 32 seconds.
However, if I simultaneously try to convert the audio using aac or libfaac, the render time gets much slower:
time /usr/local/bin/ffmpeg -y -i large.mp4 -filter_complex nvresize=1:s=cif -vcodec nvenc_h264 -aspect 16:9 -b:v 300K -acodec libfaac -ac 2 -b:a 128k -ar 44100 smaller.mp4
takes about 77 seconds.
If I convert just the audio and ‘copy’ the video, it can convert the audio alone in about 50 seconds. The audio conversion appears to be single threaded and on the CPU only.
Any advice on the best way to both downrez the video and convert the audio. At this point the bottleneck seems to be the single threaded conversion of the audio on the CPU, but perhaps there’s some trick that will allow me to get the audio rendered in about the same amount of time it’s taking to do the video. (On my test file, about 32 seconds.) For my purposes, making small (320x180) versions of clips as fast as possible is the goal.
Ironic that I’m now ‘waiting’ on audio to convert rather than video.