ffmpeg를 사용하여 길이가 지정되지 않은 비디오 시작 부분에서 X 초를 트리밍 할 수 있습니까?


20

다양하고 지정되지 않은 길이의 일련의 FLV 레코딩에서 첫 1 ~ 2 초만 잘라 내야합니다. 비디오에서 지정된 지속 시간 (예 : 30 초 클립)을 추출하기위한 많은 리소스를 찾았지만 비디오 끝까지 계속할 수있는 리소스는 없습니다.

이 두 가지 시도는 비디오의 복사 된 버전을 만들어 내고자합니다.

ffmpeg -ss 2 -vcodec copy -acodec copy -i input.flv output.flv

ffmpeg -ss 2 -t 120 -vcodec copy -acodec copy -i input.flv output.flv

두 번째 생각은 아마도 가능한 길이 이상으로 길이를 지정하면 끝까지 갈 것입니다. 주사위가 없습니다.

다음은 매력적이기 때문에 코덱이나 타임 코드 대신 초를 사용하는 것이 문제가 아니라는 것을 알고 있습니다.

ffmpeg -ss 2 -t 5 -vcodec copy -acodec copy -i input.flv output.flv

다른 아이디어가 있습니까? 다른 (Windows 기반) 명령 줄 도구를 사용할 수는 있지만 썸네일 생성에 이미 사용하고 있기 때문에 ffmpeg를 선호합니다.

도움이되면 내 동영상이 모두 2 분 미만입니다.

최신 정보:

ffmpeg가 추가 해커 없이는 이것을 달성하지 못하는 것처럼 보이기 때문에 Mencoder ( http://www.mplayerhq.hu/ ) 를 사용하도록 전환했습니다 .

내가 시작한 것을 성취하기위한 Mencoder 구문은 다음과 같습니다.

mencoder.exe -ss 2 -oac copy -ovc copy input.flv -o output.flv

그래서 당신은 어느 쪽을 선호합니까? mencoder위 의 예; 또는 ffmpeg아래 의 예?
목소리

답변:


16

시험:

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

입력 매개 변수가 먼저 있어야한다고 생각합니다.


답변 주셔서 감사합니다. 위에서 사용한 매개 변수 순서는 동일한 결과를 제공하므로 순서라고 생각하지 않습니다. ffmpeg를 포기한 후 키 프레임 간격으로 인해 다른 도구에 문제가 발생했습니다. 지금 이것을 다시 방문한 후에는 결국 키 프레임 간격이었습니다. 그것은 5 초 전에 설정되었으며 그 후 1 초로 설정했습니다. 5 초에, 당신의 명령과 내가 위에서 시도한 것들 모두 처음에 검은 공간을 산출했습니다 (당연히 3 초 가치). 1 초에 예상대로 작동합니다.
축 하

이것은 mp3에도 적용됩니다.
Geotheory

4
FFmpeg Seeking 에서 설명했듯이 , -i복사하는 동안 또는 이전 버전의 FFmpeg로 코드 변환하는 동안 -ss를 입력 매개 변수로 사용하기 전에 (- )를 키 프레임 탐색을 사용합니다. 이것은 훨씬 빠르지 만 정확성을 희생합니다. 출력 매개 변수로 사용하는 경우 프로세스 속도가 훨씬 느려지지만 (파기 된 부분의 경우에도 입력이 프레임 단위로 디코딩 됨) 정확합니다. 질문이 오래되었지만 이것이 받아 들여야 할 답변이라고 생각합니다.
Jonathan Y.

23

이 명령 예상대로 비디오를 2 초에서 자릅니다.

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

input.flv의 키 프레임 간격에 문제가있었습니다. 5 초로 설정되어 비디오 시작시 3 초 분량의 검은 색 프레임이 생성되었습니다 (5-2 = 3). 그 후 키 프레임 간격을 1 초로 변경했지만 2 초가 필자의 경우 원하는 결과를 얻을 수도 있습니다.

업데이트 : Dave의 답변에 따라 업데이트 된 순서 -i-ss매개 변수가 크레딧으로 승인되었습니다.


2
나는이 문제도 가지고 있었다. 이 포스트 는 나를 위해 그것을했다. 총알을 물고 -vcodec copy -acodec copy모든 편집 명령 에 사용 을 중단했습니다 . 재 인코딩으로 인해 비디오가 시작될 때 블랙 프레임이 제대로 표시되지 않거나 올바른 위치에서 자르지 못했습니다 ( 재 인코딩 없이 1 초 차이는 비디오에서 거의 5 초 차이로 변환되었습니다). 그래서 나는로 교체 -vcodec copy했습니다 -vcodec libx264 -crf 0.
Hendy

2
방금이 같은 일이 발생했습니다. -vcodec copy슬라이스가 키 프레임에서 시작되지 않아서 할 수 없다는 것을 알았습니다 . 다음 키 프레임까지 N 초 동안 정지 이미지 또는 검은 색 이미지를 얻었습니다. 복사하지 않고 실제로 다시 인코딩하면 예상대로 작동합니다. 따라서 입력 및 출력이 모두 H264이지만 여전히 ( -vcodec libx264대신 대신 사용) 다시 인코딩해야했습니다 -vcodec copy.
Karl Wilbur

Daves의 답변은 최신 버전의 ffmpeg에서 올바른 것입니다. 는 -i전과 와야한다 -ss.
Arete

0

-i 전에 -ss 및 -to를 사용하십시오.

ffmpeg -ss 00:01:10 -to 00:02:10 -i input -c copy output

0

이 답변을 업데이트하면 2019 년 현재 명령은 다음과 같습니다.

ffmpeg -i input.flv -ss 2 -c copy output.flv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.