Если у меня есть видео, обычно avi, но может быть любым, и я хочу создать другой в том же формате, но только часть, позиция i секунд до f секунд в видео, что это за однострочная команда?
Если у меня есть видео, обычно avi, но может быть любым, и я хочу создать другой в том же формате, но только часть, позиция i секунд до f секунд в видео, что это за однострочная команда?
Это можно сделать, используя mencoder
и ffmpeg
.
Скажите, что вы хотите вырезать часть, начинающуюся в 00:00:30, в исходный файл длиной 5 секунд и что ее нельзя перекодировать (если вы хотите перекодировать ее, вам придется замените copy
на аудио- и видеокодеки, для списка доступных аудиокодеков проблема mencoder -oac help
, для списка доступных видеокодеков выдайте mencoder -ovc help
), вы выдаете:
mencoder -ss 00:30:00 -endpos 00:00:05 -oac copy -ovc copy originalfile -o newfile
Вам нужно будет заменить orginalfile
и newfile
на фактические имена файлов, а затем - имя файла, созданного для хранения вырезанной части.
Скажите, что вы хотите вырезать часть, начинающуюся в 00:00:30, в исходный файл с длиной в 5 секунд и что ее нельзя перекодировать (если вы хотите перекодировать ее, вы будете должны заменить copy
аудио- и видеокодеками, для списка доступных выпусков кодеков ffmpeg -formats -E
), вы выдаете:
ffmpeg -ss 00:00:30 -i orginalfile -t 00:00:05 -vcodec copy -acodec copy newfile
Вам нужно будет заменить orginalfile
и newfile
на фактические имена файлов, а затем - имя файла, созданного для хранения вырезанной части.
Для справки см. Ссылка и "7. Копирование только части видео" в Ссылка суб>
Вам нужно вырезать видео с повторным кодированием или без режима повторного кодирования? Вы можете попробовать выполнить следующую команду.
Сводка: ffmpeg -i [input_file] -ss [start_seconds] -t [duration_seconds] [output_file]
использовать FFmpeg вырезать mp4 видео без повторного кодирования
Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -c copy cut_video.mp4
использовать FFmpeg cut mp4 video с повторным кодированием
Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -async 1 -strict -2 cut_video.mp4
Если вы хотите отрезать раздел с самого начала, просто снимите -t 00:00:10
из команды
Чтобы быть более точным, вы можете: ВРУЧНУЮ Откройте файл в медиаплеере, который будет кадр за кадром (potplayer мой любимый, но MPC-HC работает) и воспроизвести AVISynth файл с такими данными, как:
DirectShowSource(("C:\Downloads\Video\Do you want him.flv"), Pixel_Type="yuy2").Crop(0,0,-0,-0)
Subtitle("C:\Downloads\Video\Do you want him.flv", font="Arial", size=24, text_color=$ff0000, align=3)
ShowFrameNumber(scroll=true, x=336, y=27, font="Arial", size=24, text_color=$ff0000)
ShowTime(x=398, y=44, font="Arial", size=24, text_color=$ff0000)
Затем вырежьте формат EXACT:
ffmpeg -i "Path\do you want him.flv" -ss 00:00:05.240 -to 00:00:08.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him1.flv"
и р>
ffmpeg -i "Path\do you want him.flv" -ss 00:00:10.240 -to 00:00:14.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him2.flv"
Если вы хотите присоединиться, создайте файл txt с видеофайлами с содержимым, например:
file 'C:\Downloads\Video\Do you want him1.flv'
file 'C:\Downloads\Video\Do you want him2.flv'
Запустить ffmpeg
:
ffmpeg -f concat -i FileList.txt -c copy "Path\NewName_joined.flv"
Программным способом Я написал программу, но у меня нет 10-го уровня, чтобы показать ее, извините