ffmpeg-MOV 파일을 MP4로 변환 [닫기]


145

방금 ffmpeg를 설치했으며 업로드 한 모든 비디오를 .mp4 파일로 인코딩하려고합니다. 현재 대부분의 사용자가 .mov를 업로드하고 있으며 모든 비디오를 .mp4로 변환하고 싶습니다.

다음과 같이 명령을 실행 중입니다.

ffmpeg -i movie.mov -vcodec copy -acodec cop out.mp4

하지만 내가 얻는 것은 다음 오류입니다.

ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
  built on Aug 19 2012 11:38:20 with clang 3.1 (tags/Apple/clang-318.0.61)
  configuration: --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libfaac --enable-libxvid --enable-libx264 --enable-libvpx --enable-hardcoded-tables --enable-shared --enable-pthreads --disable-indevs --cc=clang
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2012-03-28 07:13:20
  Duration: 00:00:26.23, start: 0.000000, bitrate: 12974 kb/s
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720 [PAR 72:72 DAR 16:9], 12972 kb/s, 11.67 fps, 600 tbr, 600 tbn, 600 tbc
    Metadata:
      creation_time   : 2012-03-28 07:13:20
File 'out.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'out.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2012-03-28 07:13:20
    encoder         : Lavf53.4.0
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720 [PAR 72:72 DAR 16:9], q=2-31, 12972 kb/s, 600 tbn, 600 tbc
    Metadata:
      creation_time   : 2012-03-28 07:13:20
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
frame=  121 fps=  0 q=-1.0 size=   16408kB time=00:00:10.08 bitrate=13332.2kbitsframe=  306 fps=  0 q=-1.0 Lsize=   41543kB time=00:00:26.12 bitrate=13025.0kbits/s    
video:41538kB audio:0kB global headers:0kB muxing overhead 0.012531%

이 오류가 확실합니까? 이것은 나에게 로그 파일처럼 보입니다. 심지어 이전 mp4를 덮어 쓸 것인지 묻습니다. 'out.mp4'파일이 이미 존재합니다. 덮어 쓰시겠습니까? [y / N] y
콘래드 로츠

슈퍼 유저 와 비슷한 질문 입니다.
legends2k

답변:


254

인코딩없이 빠른 Adobe Premiere Pro와 같은 일부 응용 프로그램에 필요한 새 컨테이너 (mp4)로 스트리밍하는 명령 은 다음과 같습니다.

ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4

주석에서 언급 한 대안 으로 최고의 품질 ( -qscale 0)로 다시 인코딩됩니다 .

ffmpeg -i input.mov -q:v 0 output.mp4

70
이것이 검색 결과에 나타나므로 다음과 같이 ffmpeg에 대한 업데이트 된 명령을 추가하겠습니다. ffmpeg -i input.mov -qscale 0 output.mp4
StudioEvoque

14
@StudioEvoque -qscale 0깃발은 무엇을합니까?
CyberSkull

4
@CyberSkull -qscale은 압축 수준을 설정합니다. qscale 값이 낮을수록 품질이 좋아집니다. 사용 가능한 qscale 값의 범위는 1 (최고 품질)에서 31 (최저 품질)입니다.
RonnyKnoxville

8
@MiguelBartelsman @Baodad 컨테이너는 여러 개의 비디오 및 오디오 스트림을 패키지화하고 헤더와 목차를 추가합니다. Quicktime (mov) 및 MPEG (mp4) 컨테이너는 기술적으로 상당히 다릅니다. Quicktime 파일의 이름을 mp4로 바꾸면 MPEG 비디오 인 것처럼 가장하지만 여전히 Quicktime 컨테이너로 남아 있습니다. 참고 : copycodec 매개 변수에 for 를 사용하므로 FFMpeg에 다른 코덱으로 다시 코딩하지 않고 실제 미디어 데이터를 복사하도록 지시합니다.
Ichthyo

10
@StudioEvoque를 조심하십시오! 여기서 제안하는 것은 OP 가하고 아마도 원했던 것과는 상당히 다릅니다 . 코덱 사양을 제공하지 않으므로 FFMpeg에 MP4 컨테이너와 관련된 실제 미디어 데이터를 표준 코덱으로 트랜스 코딩 하도록 요청 합니다. 최고 품질 설정을 사용하더라도 트랜스 코딩은 항상 일부 품질을 잃게됩니다. 사용하는 경우에만 -c copy원본 미디어 데이터를 건드리지 않도록하고 컨테이너 만 변경하십시오
Ichthyo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.