한 줄 명령으로 비디오의 일부 추출

한 줄 명령으로 비디오의 일부 추출

일반적으로 avi 비디오가 있지만 어떤 것일 수도 있고 동일한 형식이지만 일부만 위치로 다른 비디오를 만들고 싶습니다.에프몇 초 동안 비디오를 재생하는 동안 이를 수행하는 한 줄 명령은 무엇입니까?

답변1

이는 mencoder또는 를 사용하여 수행할 수 있습니다 ffmpeg.

멘코더

00:00:30부터 시작하는 부분을 5초 길이의 원본 파일로 잘라내고 싶고 다시 인코딩하면 안 된다고 가정해 보세요. (다시 인코딩하려면 copy오디오로 바꿔야 합니다.) 및 비디오 코덱, 사용 가능한 오디오 코덱 목록 문제 mencoder -oac help, 사용 가능한 비디오 코덱 목록 문제 mencoder -ovc help), 다음을 실행합니다.

mencoder -ss 00:30:00 -endpos 00:00:05 -oac pcm -ovc copy originalfile -o newfile

orginalfile및 를 실제 파일 이름으로 바꿔야 합니다 newfile. 후자는 잘라낸 부분을 보관하기 위해 생성된 파일의 이름입니다.

ffmpeg

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나중에 잘라낸 부분을 보관하기 위해 생성된 파일 이름이 됩니다.


참고로 참조하세요http://lazyxiong-tech.blogspot.com/2007/05/using-mencoder-to-cut-out-pieces-of.html및 "7. 비디오의 일부만 복사"http://segfault.in/2010/10/ffmpeg-tricks-you-should-know-about/

답변2

재인코딩 모드를 사용하거나 재인코딩 모드 없이 비디오를 잘라야 합니까? 아래 명령을 따르십시오.

개요: 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 컷 mp4 비디오 사용

Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -async 1 -strict -2 cut_video.mp4

처음부터 섹션을 잘라내려면 -t 00:00:10명령에서 삭제하면 됩니다.

답변3

메디팩에 대한 래퍼로서 매우 간단한 명령줄 앱입니다 ffmpeg.

다음 명령을 사용하여 비디오를 다듬을 수 있습니다.

medipack trim input.mp4 -s 01:04 -e 14:08 -o output.mp4
medipack trim input.mp4 -s 01:04 -t 13:04 -o output.mp4

다음과 같이 Trim 하위 명령의 옵션을 볼 수 있습니다.

srb@srb-pc:$ medipack trim -h
usage: medipack trim [-h] [-s START] [-e END | -t TIME] [-o OUTPUT] [inp]

positional arguments:
  inp                   input video file ex: input.mp4

optional arguments:
  -h, --help            show this help message and exit
  -s START, --start START
                        start time for cuting in format hh:mm:ss or mm:ss
  -e END, --end END     end time for cuting in format hh:mm:ss or mm:ss
  -t TIME, --time TIME  clip duration in format hh:mm:ss or mm:ss
  -o OUTPUT, --output OUTPUT

다음을 사용하여 다른 옵션을 탐색할 수도 있습니다.medipack -h

srb@srb-pc:$ medipack --help
usage: medipack.py [-h] [-v] {trim,crop,resize,extract} ...

positional arguments:
  {trim,crop,resize,extract}

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Display version number

당신은 방문할 수 있습니다https://github.com/srbcheema1/medipackREADME의 체크아웃 예시.

답변4

더 정확하게 말하면 다음과 같이 할 수 있습니다. 프레임 단위로 진행하는 미디어 플레이어(내가 가장 좋아하는 팟플레이어이지만 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)

그런 다음 정확한 시간 형식으로 잘라냅니다.

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이 없습니다. 죄송합니다.

관련 정보