abox.tools

언어: 한국어

동영상을 거꾸로 돌리는 방법

영상을 거꾸로 재생하는 것은 세상에서 가장 단순한 편집처럼 들리지만, 영상 파일이 가장 대비하지 않은 일이기도 합니다. 실제로 무슨 일이 일어나야 하는지, 그 대가가 무엇인지, 그리고 그 전에 해 둘 만한 한 단계를 정리했습니다.

동영상 거꾸로 재생 열기 마지막 프레임부터, 소리까지 함께.

Markdown으로 보기

짧은 답

동영상 거꾸로 재생을 열고 영상을 넣은 다음, 소리도 뒤집을지 정하고 내보내세요. 나오는 것은 마지막 프레임이 맨 앞에 오는 같은 영상이고, 길이는 들어간 것과 똑같습니다.

구간 자르기와 달리 이쪽은 모든 프레임을 다시 써야 합니다. 화면뿐 아니라 소리도요. 특정 도구의 결함이 아니라 뒤집기라는 일 자체가 그렇습니다. 이 페이지의 나머지는 그 이유와, 그것이 기다리는 시간에 무엇을 뜻하는지에 대한 것입니다.

영상을 그냥 거꾸로 재생할 수 없는 이유

영상 파일은 그림 더미가 아닙니다. 대략 쉰 프레임에 하나쯤이 온전한 그림 곧 키프레임이고, 그 사이의 모든 것은 둘레 프레임에서 무엇이 달라졌는지를 적어 둔 것입니다. 한 시간짜리 영상이 휴대폰에 들어가는 이유죠.

그 말은 디코더가 앞으로만 갈 수 있다는 뜻이기도 합니다. 영상의 마지막 프레임을 보여 주려면 그 앞의 키프레임을 찾아 그 사이를 전부 디코딩해야 합니다. 끝에서 두 번째 프레임을 달라고 하면 같은 일을 또 합니다.

그래서 뒤집기는 묶음 단위로 이루어집니다. 한 묶음을 앞으로 디코딩하고, 프레임을 들고 있다가, 인코더에 반대 순서로 건네고, 그 앞 묶음으로 옮겨 갑니다. 뻔한 대안은 영상 전체를 목록으로 디코딩해 두고 그 목록을 거꾸로 훑는 것인데, 그러면 1080p 프레임 하나에 3 MB쯤, 1분에 5 GB쯤의 메모리가 필요합니다. 그 방식으로 만든 도구가 몇 초를 넘는 영상에서 쓰러지는 이유입니다.

원본 카드. 영상의 이름, 용량, 화면 크기, 길이, 코덱.
도구가 파일에 대해 알아낸 것들입니다. 되감기는 흘려보내며 처리할 수 없는 유일한 작업이라, 메모리에 들어갈지 말지를 이 숫자들이 정합니다.

소리는 어떻게 되는가

뒤집기 도구들이 가장 크게 갈리는 대목이고, 실제로 무엇을 받았는지 확인해 볼 만한 자리입니다.

소리는 수십 밀리초짜리 패킷으로 압축되고, 각 패킷은 앞 패킷을 기준으로 코딩됩니다. 그 패킷을 뒤에서부터 그대로 써 내는 것은 음원을 거꾸로 재생하는 것이 아닙니다. 짧은 조각들이 순서만 뒤바뀐 채 앞으로 재생되는 것이라, 뒤집힌 소리가 아니라 끊기는 소리나 고장 난 소리로 들립니다. 소리를 제대로 뒤집는 유일한 방법은 트랙 전체를 디코딩하고, 샘플을 반대 순서로 놓고, 다시 인코딩하는 것입니다.

여기서 일어나는 일이 그것이고, 동영상 구간 자르기와 동영상 화면 자르기는 소리를 전혀 건드리지 않는데 여기서는 다시 인코딩하는 이유입니다. 그 작업들은 무언가가 언제 일어나는지를 바꾸지 않고, 이 작업은 그것 말고는 아무것도 바꾸지 않으니까요.

화면만 거꾸로 하고 소리는 아예 빼고 싶으시다면 체크박스를 끄세요. 음소거로 재생되는 피드로 가는 영상이라면 보통 그렇게 합니다. 더 빠르고 파일도 작고요.

내보내기 카드. 품질 슬라이더, 소리를 남기는 스위치, 그리고 출력 크기와 길이와 프레임 수의 요약.
소리 스위치가 여기 있는 것은 거꾸로 된 말소리를 원하는 사람이 거의 없기 때문이고, 내보낸 뒤보다 내보내기 전에 정하는 편이 쉽기 때문입니다.

화면이 치르는 대가

재인코딩 한 번입니다. 프레임이 원본 파일의 어떤 것도 대비하지 않은 순서로 나오므로, 하나하나를 새로 써야 합니다.

제대로 만든 도구가 하지 않는 일은 원본이 쓴 것보다 더 쓰는 것입니다. 거꾸로 된 영상은 들어온 영상과 정확히 같은 그림을 담고 있으므로, 비트레이트를 높여 봐야 새로 설명할 것이 없습니다. 파일만 커지고 더 좋아 보이지는 않습니다. 여기 화질 설정은 그 천장 위가 아니라 그 안에서 움직입니다.

늘 그렇듯 손실 단계는 쌓입니다. 원본을 한 번 뒤집은 것은 1세대입니다. 화면 녹화를 내려받고 내보내고 뒤집은 것은 4세대이고, 딱 그렇게 보입니다.

먼저 자르고, 그다음 뒤집으세요

영상에 둘 다 필요하다면 먼저 자르세요. 구간 자르기는 공짜입니다. 좋은 커터는 프레임을 디코딩하지 않고 통째로 옮기니까요. 그리고 덜어 낸 1초는 아무도 다시 디코딩하고 인코딩하지 않아도 되는 1초입니다.

반대로 하면 곧 버릴 영상을 뒤집는 것이 됩니다. 긴 영상에서는 몇 초짜리 작업과 몇 분짜리 작업의 차이입니다. 그 첫 단계가 왜 화질을 한 푼도 앗아 가지 않아도 되는지는 구간 자르기 가이드에 적혀 있습니다.

화면 자르기에도 같은 순서가 적용됩니다. 구간을 자르고, 화면을 자르고, 뒤집으면, 가능한 한 짧은 영상에 대해 재인코딩 한 번의 값만 치릅니다.

사람들이 실제로 쓰는 곳

형식, 그리고 걸리는 시간

MP4, M4V, MOV는 안에 H.264든 HEVC든 AV1이든 VP9이든, 브라우저가 그 코덱을 디코딩할 수 있는 한 곧바로 읽습니다. 빠른 경로예요. 파일을 프레임 묶음 단위로 거슬러 훑으며, 기기가 낼 수 있는 최고 속도로 갑니다.

브라우저가 재생할 수 있는 나머지, 대표적으로 WebM은 브라우저 자신의 플레이어를 한 순간씩 거꾸로 옮겨 가며 뒤집습니다. 되기는 되고, 더 느립니다. 그 한 걸음 한 걸음이 브라우저에게 앞선 키프레임부터 디코딩하게 만들기 때문입니다. 시작하기 전에 둘 중 어느 경로를 쓰는지와 그 이유를 페이지가 알려 줍니다.

AVI, WMV, FLV와 대부분의 MKV는 브라우저가 읽지도 재생하지도 못하고, 도구는 중간에 실패하는 대신 메시지와 함께 거부합니다.

어느 쪽이든 이 사이트에서 느린 축에 드는 작업입니다. 모든 프레임이 디코딩되고 인코딩되며, 어떤 프레임은 두 번 이상 디코딩되기 때문입니다. 짧은 영상은 몇 초면 되고, 긴 4K 영상은 시작해 두고 다른 일을 하시는 편이 좋습니다.

여기에 업로드가 필요 없는 이유

브라우저에서 영상을 디코딩하고 다시 인코딩하는 것은 최근의 일이고 실제로 됩니다. WebCodecs는 휴대폰이 영상을 녹화할 때 쓰는 바로 그 하드웨어 인코더를 드러내고, 빠른 이유도 같습니다. 작업이 파일을 이미 갖고 있는 기기에서 일어나니까요. 큰 영상이라면 말이 되는 유일한 배치이기도 합니다. 올리고 결과를 내려받는 데 인코딩보다 더 많은 시간이 드니까요.

여기 도구에는 네트워크 기능이 하나도 없고, 페이지의 Content-Security-Policy가 연결 가능한 주소를 전부 적어 두는데 그중 이 사이트의 것은 없습니다. 듣기만 하는 것보다 직접 확인하고 싶다면, 인터넷을 끊고 그냥 영상을 거꾸로 돌려 보세요.

온라인 변환 사이트에 파일을 올려도 안전할까요?에 어떤 도구에든 해 볼 수 있는 확인 세 가지가 더 있습니다.