Как сохранить частоту кадров источника с помощью mencoder / ffmpeg?

1758
Sandra

Я хотел бы обрезать и повернуть видео, а затем закодировать его в mp4 или mkv.

mencoder video.mp4 -vf rotate=1,crop=720:1280:0:0 -oac pcm -ovc x264 -x264encopts preset=veryslow:tune=film:crf=15:frameref=15:fast_pskip=0:threads=auto -lavfopts format=matroska -o test.mkv 

Но когда я делаю описанное выше кодирование, частота кадров слишком высокая. Я нашел варианты кодирования, так что я не знаю, в этом ли проблема.

Вопрос

Все, что я хочу, это обрезать и вращать видео, и поддерживать качество аудио / видео как можно лучше.

Кто-нибудь пробовал это?

1

1 ответ на вопрос

4
LordNeckbeard

input example rotated and cropped version
Оригинальная и транспонированная и обрезанная версия

С помощью ffmpeg

Вы можете сделать это в ffmpeg. По умолчанию входная частота кадров используется для выходной частоты кадров.

Пример поворота на 90 ° по часовой стрелке с transposeфильтром и crop(по центру) размером 720x1280:

ffmpeg -i input -vf "transpose=1,crop=720:1280" -c:v libx264 -c:a copy out.mkv 

Использование видеофильтров требует повторного кодирования видео, но аудио будет просто копироваться в потоковом режиме, а не перекодироваться.

Повернуть при воспроизведении

Другим вариантом является поворот и обрезка во время воспроизведения. Таким образом, вам не нужно перекодировать и потенциально снижать качество. Любой игрок, которого стоит использовать, должен позволить вам сделать это. Пример использования ffplay:

ffplay -vf "transpose=1,crop=720:1280" -i input 

Также см:

Похожие вопросы