ffmpeg - การแปลงไฟล์ MOV เป็น MP4 [ปิด]


146

ฉันเพิ่งติดตั้ง 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
Conrad Lotz

คำตอบ:


254

คำสั่งให้สตรีมไปยังคอนเทนเนอร์ใหม่ (mp4) ที่ต้องการโดยบางแอปพลิเคชันเช่น Adobe Premiere Pro โดยไม่ต้องเข้ารหัส (เร็ว) คือ:

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

ทางเลือกตามที่กล่าวไว้ในความคิดเห็นซึ่งเข้ารหัสอีกครั้งด้วย quaility ที่ดีที่สุด ( -qscale 0):

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

71
เนื่องจากสิ่งนี้ปรากฏในผลการค้นหาฉันจะเพิ่มคำสั่งที่อัปเดตสำหรับ 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 container โปรดทราบ: เนื่องจากคุณใช้copyพารามิเตอร์ codec คุณจึงแจ้ง FFMpeg ให้คัดลอกข้อมูลสื่อจริงโดยไม่ต้องเข้ารหัสซ้ำลงใน codec อื่น
Ichthyo

10
@StudioEvoque ระวัง! สิ่งที่คุณเสนอที่นี่เป็นสิ่งที่แตกต่างจากที่ OP ทำและอาจต้องการ คุณไม่ได้ให้ข้อมูลจำเพาะตัวแปลงสัญญาณดังนั้นคุณจึงขอให้ FFMpeg แปลงรหัสข้อมูลสื่อจริงลงในตัวแปลงสัญญาณมาตรฐานสำหรับการเชื่อมโยงกับคอนเทนเนอร์ MP4 แม้ว่าคุณจะใช้การตั้งค่าคุณภาพสูงที่สุดการแปลงรหัสจะทำให้คุณภาพลดลงเสมอ เฉพาะเมื่อคุณใช้-c copyคุณต้องแน่ใจว่าไม่ได้สัมผัสข้อมูลสื่อดั้งเดิมเช่นนั้นเท่านั้นที่เปลี่ยนภาชนะ
Ichthyo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.