터미널에서 비디오 파일을 결합하는 방법?


9

나는 avidemux2_cli, mencoder, ffmpeg, cat를 시도했습니다. 그러나 이것은 항상 작동하지는 않습니다 (대부분의 경우 오류는 오디오 코덱이 동일하지 않음) 명령에 잘못된 옵션을 넣을 수 있습니다.

따라서 명령은 다음과 같습니다.

cat Sample.avi rrr.avi > complete.avi
ffmpeg -i Sample.avi -i output.avi -vcodec copy -acodec copy complete.avi
mencoder -ovc lavc -oac copy Sample.avi rrr.avi -o complete.avi
avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi -append output.avi --save video.avi

고양이 문제는 오류를 표시하지 않지만 항상 작동하지는 않는다는 것입니다. complete.avi와 마찬가지로 Sample.avi와 정확히 동일합니다.

Fmpeg는 아무것도하지 않습니다. complete.avi는 항상 Sample.avi와 같습니다.

멘 코더 오류 : 모든 파일의 오디오 코덱 및 -oac 복사 형식이 동일해야합니다. 따라서 complete.avi는 Sample.avi와 동일합니다.

avidemux2_cli 오류는 없지만 complete.avi는 Sample.avi와 동일합니다.

요약하자면 모든 complete.avi는 Sample.avi와 동일합니다. 문제는 동일한 오디오 코덱이없는 것입니다 (i quess). 어떤 아이디어?


1
두 개의 비디오를 안전하게 결합하려면 입력 파일의 비디오 코덱과 오디오 코덱을 동일한 코덱으로 변경해야한다고 생각합니다.
vine_user

어떻게해야합니까?
레온 비타 노스

mencoder-ovc 옵션 및 -oac 옵션과 함께 사용할 수 있습니다 . 참조 : mplayerhq.hu/DOCS/HTML/en/menc-feat-selecting-codec.html
vine_user

답변:


10

두 비디오를 안전하게 결합하려면 입력 파일의 비디오 코덱과 오디오 코덱을 동일한 코덱으로 변경해야합니다.

예를 들어, xvid (비디오 코덱) 및 mp3lame (오디오 코덱) 사용 :

sudo apt-get install mencoder libxvidcore4 libmp3lame0

아래 명령으로 입력 비디오를 인코딩 할 수 있습니다.

mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=1000 first.avi -o video1.avi
mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=1000 second.avi -o video2.avi

비디오와 일치시키기 위해 "비트 전송률"등 (및 코덱) 옵션을 변경할 수 있습니다.

인코딩 된 비디오 이름이 "video1.avi"및 "video2.avi"이고 출력 비디오 이름이 "joined-video.avi"인 경우,

mencoder -ovc copy -oac mp3lame video1.avi video2.avi -o joined-video.avi 

이 명령을 사용하면 결합 된 비디오 파일을 만들 수 있습니다.


2
이 유틸리티의 이름이 mencoderMedia Encoder 라는 것을 강조하고 싶다고 생각했습니다 . 실수로 입력하면 많은 사람들이 고착됩니다 memcoder.
Val

프레임 크기도 일치하지 않아도됩니까?
Geek

4

동일한 코덱으로 세 개의 비디오를 결합해야했습니다. 이전 답변을 읽었 으므로이 작업을 수행했습니다.

mencoder -ovc copy -oac faac 01.mp4 02.mp4 03.mp4 -o output.mp4

Openshot보다 훨씬 빠르고 간단합니다!

먼저 '-oac copy'옵션을 시도했지만 비디오의 오디오 코덱에서 허용하지 않는 것 같습니다. '-oac pcm'을 권장하는 오류 메시지가 나타납니다. pcm 코덱은 좋은 옵션이 아닙니다. 결과 파일이 매우 커서 2/3는 압축되지 않은 오디오입니다.

도움이 되었기를 바랍니다


2
gcc-4.7 (C) 2000-2012로 빌드 된 MEncoder svn r34540 (Ubuntu) MPlayer 팀 MPlayer는 libfaac없이 컴파일되었습니다. README 또는 DOCS를 참조하십시오.
Philippe Gachoud

1

내가 발견 한 해결책 여기 손실이 MP4 파일없이 가입 나에게 도움이 :

sudo apt-get install gpac
MP4Box -cat part1.mp4 -cat part2.mp4 -new joinedfile.mp4

Avidemux를 사용해 보았지만 병합 된 비디오의 사운드에 문제가있었습니다.


1

일치하지 않는 파일이 제대로 연결되지 않습니다.

다른 많은 사람들과 마찬가지로 병합 된 비디오에서 사운드 동기화에 문제가있었습니다. 클립의 사양이 동일한 경우 MP4Box가 제대로 작동하지만 경우에 따라“적합한 대상 트랙을 찾을 수 없음-새 트랙을 생성하는 경우”가 발생합니다.이 경우 토템 (일명 비디오)은 결합 된 파일에서 해당 세그먼트를 재생하지 않습니다 몇 번의 시행 착오와 추가 연구를 거쳐 지금까지 수용 가능한 (나에게) 품질로 작동했던 비디오 참여를 다루기 위해 다음과 같은 방법을 개발했습니다.

프레임 크기가 일치하지 않는 경우 (비디오 트랙과 관련된 오류) :

일치하지 않는 세그먼트에 대한 제약 조건 (최대 코덱 호환성을 위해 8로 나눌 수 있음)을 설정하여 오디오 (-c : 사본)를 방해하지 않고 비디오표준화합니다 .

명령 예

width=856

height=480

avconv -i input.mp4 -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -c:a copy output.mp4

오디오가 일치하지 않는 경우 (오디오 트랙과 관련된 오류가 발생 함) :

오디오 표준화

모든 클립이 원하는 코덱, 주파수 및 비트 전송률을 -ar 48000과 같은 c : a 코덱 -ar 주파수 및 b : a 128k (스테레오 용 64k)와 일치하도록 비디오 (c : v 복사)를 처리하지 않고 오디오를 처리합니다. 채널이 좋은 목표 인 것 같습니다)

예 : avconv -i input.mp4 -c:v copy -c:a libmp3lame -ar 48000 b:a 128k output.mp4(libmp3lame은 mp3 오디오 용 코덱입니다.) 명령을 실행 avconv -codecs하거나 avconv -codecs|grep *codecname*예를 들어 특정 코드로 범위를 좁 히면 avconv 지원 인코더 목록을 얻을 수 있습니다.avconv -codecs|grep mp3

이제 파일을 정규화 했으므로 파일을 결합 할 수 있습니다. 이 예에서는 MP4Box로 파일을 결합합니다. 당신이 그것을 가지고 있지 않다면 당신은 명령을 내려서 얻을 수 있습니다sudo apt-get install gpac

명령을 사용하여 파일을 결합하십시오 MP4Box file1.mp4 -cat file2.mp4 -cat file3.mp4 -cat file4.mp4 -out joinedfile.mp4(첫 번째 파일 앞에 cat이없고 각 추가 파일 앞에 -cat이 있고 대상 파일 앞에 -out이 있음에 유의하십시오)

MP4Box (MP4 권장)를 사용하여 결합하는 경우 스펙이 일치하는 것처럼 보이거나 avconv가있는 모든 클립을 처리해야합니다.

참고 : Avidemux는 B 프레임으로 인해 H.264 / AVC (토템 당) 파일을 사용하여 인코딩 된 비디오에 문제가있는 것으로 나타났습니다. 이것은 remux없이 오디오와 비디오를 모두 복사하도록 선택할 때도 참여 할 때 오디오가 동기화되지 않는 것처럼 보입니다. 안전 모드를 선택하지 않으면 안전 모드 사용시 동기화되지 않음

출처 :

/superuser/547296/resizing-videos-with-ffmpeg-avconv-to-fit-into-static-sized-player

/programming/20703160/problems-with-setting-constant-bitrate-by-using-avconv

https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr

참고 : 다른 형식 (컨테이너)은 프레임 크기와 오디오 속도를 일치시키는 데 비슷한 제약 조건이 있으므로 비디오 및 오디오를 표준화 한 후 고양이 또는 멘 코더를 통해 참여하려고 시도하면 avi에도 효과적 일 수 있습니다 .

선택 사항 : 핸드 브레이크를 사용하여 원하는 경우 가변 프레임 속도와 일정한 품질 설정 25 (권장 설정 – 재료 및 품질 기대치에 따라 조정)로 결합 된 파일을 더 작은 크기로 다시 인코딩합니다.


1

다음과 같이 입력해야합니다.

avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi --append output.avi --save video.avi

더 많은 파일을 추가하려면 다음을 수행하십시오.

avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi --append output1.avi --append output2.avi --append output3.avi --save video.avi

1

VLC Media Player를 사용하여 여러 비디오 파일을 결합 / 병합 할 수있었습니다. VLC는 Ubuntu Software에서 다운로드하거나 Ctrl+ Alt+ T를 누르고 다음을 입력하여 터미널에서 설치할 수 있습니다 .

sudo apt update
sudo apt install vlc

VLC가 설치되면 비디오 파일이있는 폴더에서 터미널을 열고 다음을 입력하십시오.

vlc InFile1.mp4 InFile2.mp4 --sout "#gather:std{access=file,dst=OutFile.mp4}" --sout-keep

그러면 VLC GUI가 열리고 파일이 결합 / 병합되면 닫을 수 있습니다. 자세한 내용은 여기를 참조 하십시오 .

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