트랜스 코딩하지 않고 더 큰 파일에서 1 분 클립을 연결할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1641135

문제

사람들이 다양한 형식 (AVI, MP4, MKV 및 FLV)으로 큰 비디오 파일을 업로드 할 수있는 사이트가 있습니다. 업로드 된 큰 파일에서 1 분의 "샘플"을 생성해야하며 샘플은 동일한 형식이어야하며 원래 파일과 동일한 프레임 크기와 비트 속도가 있어야합니다. 파일의 섹션을 새 파일로 단순히 잘라낼 수있는 방법이 있습니까? 바람직하게는 FFMPEG (또는 FFMPEG가 불가능한 경우 다른 도구)에서.

도움이 되었습니까?

해결책

먼저 비디오 파일이 실제로 작동하는 방식을 이해하고 싶을 것입니다. 다음은 다음을 설명하는 튜토리얼 세트입니다. 인터넷 비디오에 대한 지나치게 단순한 가이드.

그런 다음 샘플을 슬라이스하는 데 도움이 될 수있는 다양한 도구를 사용해 볼 수 있습니다. 하나는 flvtool (입력이 flv 인 경우) 또는 ffmpeg. FFMPEG를 사용하면 시작 시간과 중지 시간을 지정할 수 있으며 요청한 내용 만 잘라 내려고 시도합니다 (그러나 가장 가까운 키 프레임을 찾아 슬라이스를 시작해야합니다).

FFMPEG 명령은 Input.flv라는 파일을 읽고 비디오를 15 초를 시작한 다음 다음 60 초를 잘라 내지 만 오디오 코드 및 비디오 코덱에 대해 동일한 매개 변수를 유지하고 출력 파일에 쓰십시오. :

ffmpeg -i input.flv -ss 15 -t 60 -acodec copy -vcodec copy output.flv

마지막으로 원하는 경우 C 또는 C ++ (FFMPEG의 LIBAV 라이브러리 사용) 또는 Java (사용 xuggler) 프로그램적으로이를 수행하지만, 이는 사용 사례에 상당히 발전했습니다.

다른 팁

자동 및 비디오를 그대로 유지하는 데 문제가있는 경우 다음이 도움이 될 수 있습니다 (다른 웹 사이트에서 찾을 수 있음).

ffmpeg -sameq -i file.flv -ss 00:01:00 -t 00:00:30 -ac 2 -r 25 -copyts output.flv

Evan이 지적했듯이, 허용 된 답변의 접근 방식은 A/V 동기가 손실 될 수 있습니다. 그러나 그의 해결책은 정확하지 않습니다 -sameq 제거되었다.

언급 한 바와 같이 https://trac.ffmpeg.org/wiki/seeking 그만큼 -ss 옵션은 전에 와야합니다 -i 후에. 이것은 나에게 문제를 해결했다.

다음 옵션은 사용하는 것입니다 -fs 스위치. 예시:

ff -i ip.mkv -fs 500M -c copy ~/Movies/reservoir/carbohydrates.mkv

선택된 소스에서 500 메가 바이트 (500 × 1000 × 1000 바이트 + 'muxing 오버 헤드')를 추출하십시오. - 알 수 있듯이 파일 크기에 기반을 둡니다

하나의 사랑. 그리고 존중.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top