문제

Debian Wheezy 시스템에서 Nexus 4로 촬영한 동영상을 회전하는 방법을 찾고 있습니다.동영상이 세로 모드로 촬영되었는데 가로 모드로 회전하고 싶습니다.바람직하게는 회전은 명령줄로 구동됩니다.

좋은 해결책을 암시하는 몇 가지 이전 질문을 찾았지만 제대로 작동하지 않는 것 같습니다.

우선 이런 질문이 있었습니다.FFmpeg를 사용하여 비디오 회전

하지만 이는 ffmpeg가 오래되었으며 avconv를 사용해야 함을 나타냅니다.나는 앞으로 나아갈 길을 자세히 설명하는 이 질문을 발견했습니다.https://askubuntu.com/questions/269429/how-can-i-rotate-video-by-180-degrees-with-avconv

이로 인해 다음 명령을 사용하게 되었습니다.

avconv -i original.mp4 -vf "transpose=1" -codec:v libx264 -preset slow -crf 25 -codec:a copy flipped.mp4

그러나 이는 매우 느리고(마지막 테스트에서는 3분 미만의 영상을 위해 6시간 이상 소요됨) 재생 가능한 영화가 생성되지 않습니다.또한 Mb 속도 > 수준 제한을 나타내는 로깅 출력 오류가 발생합니다.

다시 인코딩하는 데 문제가 있습니까?회전을 적용하기 전에 먼저 휴대폰의 비디오를 보다 "실행 가능한" 다른 인코딩으로 다시 인코딩해야 합니까?아니면 또 다른 중요한 점을 놓치고 있는 걸까요?

도움이 되었습니까?

해결책

플래그를 고려한 미디어 플레이어가 회전하는 파일을 고려해야하는 메타 데이터를 변경하려면 다음과 같은 것을 시도하십시오.

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
.

로 발견 된 StackOverflow 의 다른 위치

다른 팁

Rotation= 0이 문제가 해결되었습니다.나는 초상화 모드로 비디오를 녹화하기 시작했고, 실수를 실현하고 즉시 휴대 전화를 켜기를 계속하기 위해 프리를 켜십시오.내 iPhone은 비디오 전체를 초상화로 표시했습니다.

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4
.

고정.

FFmpeg 및 유사한 프로그램 메타 데이터 변경 -map_metadata 옵션을 사용하십시오. exiftool는 회전 매트릭스 및 회전 플래그를 읽을 수 있으며 버전 10.89도 아래에 설명 된대로도 기록합니다.

실제 무손실 (메타 데이터 포함) 회전을 얻으려면 솔루션을 찾을 수 없었기 때문에 16 진수 편집기 (예 : hxd )를 분석하고 회전 된 비디오 파일을 분석했습니다.

MP4의 진정한 무손실 회전 :

  • 육각 편집기로 MP4를 열고 vide를 검색하여 비디오 트랙
  • 의 메타 데이터를 찾습니다.
  • 위의 행 (내 파일의 경우 내 파일의 경우, 때로는 12) trak...\tkhd
  • 를보아야합니다.
  • 사이에있는
  • @ Sign (16 진수 40)
  • 회전 매트릭스가 저장되기 전에 두 행의
  • 회전 없음 :

    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40
    
  • 180 ° :

    FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40
    
  • 90 ° CW :

    00 00 00 00 00 01 00 00 00 00 00 00 FF FF 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    40 
    
  • 90 ° CCW :

    00 00 00 00 FF FF 00 00 00 00 00 00 00 01 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    40
    

필요할 때 파일을 변경하면 회전 플래그 (대부분의 현재 플레이어가 수행)를 지원하는 플레이어에서 회전해야합니다.

비디오에 스테레오 오디오가 들어있는 경우, 이것은 분명히 전환되지 않으므로 소리가 비디오 회전 (180 °)과 일치하도록 원하는 경우 왼쪽 및 오른쪽 채널을 전환해야합니다.

귀하의 질문에서 다루신 내용은 다음과 같습니다.

  1. 다시 인코딩하지 않고 회전할 수 있는 가능성은 거의 없습니다.해당 규칙(MJPEG 코덱)에 대한 예외 사항은 이미 지적되었지만 이를 사용하고 있을 가능성은 거의 없으므로 이 질문의 범위를 벗어납니다.이 기능이 있는 이유는 JPEG를 메타데이터를 통해 변환할 수 있기 때문이라고 언급하겠습니다.따라서 메타데이터 회전이 있는 컨테이너를 찾을 수 있다면 회전할 수 있지만 지금까지 존재하지 않거나 충분히 널리 퍼져 있는 컨테이너는 없습니다.
  2. 3분 분량의 비디오를 회전하고 다시 인코딩하는 데 몇 시간이 걸렸다면 문제는 막대한 해결.그리고 내 말은 거대한!의 출력을 제공해 주시겠습니까? avprobe original.mp4 그래야 확인할 수 있습니다.
  3. Libav 대 FFmpeg 논쟁은 매우 비생산적입니다(여기에 이미 게시된 허위 내용을 보면 알 수 있습니다).기본적으로 일어난 일은 일부 개발자가 한 방향으로 가고 다른 개발자가 프로젝트를 분할한 것입니다. FFmpeg 프로젝트가 이름을 유지할 수 있다는 사실은 우연일 뿐이며 한 프로젝트를 원본이라고 부르고 다른 프로젝트를 포크라고 부르는 것은 의미가 없습니다.프로젝트 간의 차이점은 주로 개발 스타일과 철학에 있습니다.FFmpeg를 더 많은 오픈 소스로, Libav를 더 많은 자유 소프트웨어로 특성화한다면 그렇게 착각하지는 않을 것입니다.합리적인 사람들은 결국 개발자들이 정신을 차리고 프로젝트를 병합하지 않고 더 큰 범위에서 협력하기를 바랍니다.Ubuntu가 원래 나왔을 때 모든 Debian GNU/Linux 채팅에는 "Ubuntu는 Debian이 아닙니다!!!!!!!"라는 문구를 따라 큰 메시지가 있었지만 이제는 상황이 진정되었고 양측 모두 하나에 상당히 만족하고 있습니다. 또 다른.

이 대답은 단순히 Lordneckbeard가 제공하는 의견의 요약 일뿐입니다.

인코딩없이 회전

다시 인코딩없이 회전하는 것은 다음과 같지 않으면 다음이 가능하지 않습니다.

  • 입력은 mjpeg
  • 입니다.
  • 재생시 회전

올바른 FFMPEG를 사용하여 인코딩으로 회전

이 질문에 필요한 단계를 정확하게 이해하기 위해서는이 질문을 읽거나 적어도 무서워해야합니다.

ffmpeg, libav 및 avconv 간의 차이점과 유사점은 무엇입니까?

요약 : AVCONV는 FFMPEG의 포크이며, Debian Mainteraer는 AVCONV를 선택하여 소스에서 올바른 FFMPEG를 컴파일해야합니다.

다음 단계는 소스에서 올바른 FFMPEG를 컴파일합니다.

Debian for ffmpeg의 컴파일 가이드

마지막 단계는 다른 게시물에있는 명령을 사용하고 있습니다.

비디오를 뒤집는 방법 ffmpeg로 180 ° (수직 / 거꾸로) 또는 FFMPEG로 비디오 회전

요약 : ffmpeg -vfilters "Rotate= 90"-i input.mp4 output.mp4

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