Я использую ffmpeg для преобразования различных типов видео файлов в mp4s.
Команда, которую я использую, работает для большинства видеофайлов, с которыми я сталкивался, однако, когда она встречает m4v, она никогда не прекращает обработку файла. Самое длинное, что я позволил этому, - 4 часа на 10-минутном видеоклипе. Более того, если я позволю ему работать достаточно долго, выходной файл будет больше, чем входной файл.
Ниже приведена команда целиком. Эта команда также изменяет размер видео до стандартного разрешения.
/usr/local/bin/ffmpeg -y -i /path/to/input.m4v -y -acodec libfaac -ar 44100 -ab 96k -pass 2 -passlogfile x264-2pass-11164-log -threads 2 -vcodec libx264 -b 512k -flags +loop+mv4 -cmp 256 -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -me_method hex -subq 7 -trellis 1 -refs 5 -bf 3 -flags2 +bpyramid+wpred+mixed_refs+dct8x8 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin 10 -qmax 51 -qdiff 4 -s 720x406 -vf movie=/apps/video_conversion/watermark.png [wm]; [in][wm] overlay=main_w-overlay_w-10:10 [out] -analyzeduration 2000M /path/to/output.mp4
Что я здесь не так делаю? Я думаю, что вычисление между mp4 и m4v будет легко, учитывая, насколько похожи эти типы файлов.
Я знаю, что вы легко конвертируете между mp4 и m4v, просто изменив расширение. Причина, по которой я запускаю эту команду в ffmpeg, заключается в том, что она также должна быть изменена до указанного формата.