ffmpeg - Mengonversi file MOV ke MP4 [ditutup]

145

Saya baru saja menginstal ffmpeg dan saya mencoba untuk menyandikan semua video yang saya unggah ke file .mp4. Sebagian besar pengguna saat ini mengunggah .mov dan saya ingin mengonversi setiap video menjadi .mp4.

Saya menjalankan perintah sebagai berikut:

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

Tapi yang saya dapatkan hanyalah kesalahan-kesalahan berikut

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%
pengguna1503606
sumber
Apakah Anda yakin ini kesalahan? Ini lebih mirip file log untuk saya. Bahkan meminta untuk menimpa mp4 sebelumnya: File 'out.mp4' sudah ada. Timpa? [y / T] y
Conrad Lotz
Pertanyaan serupa di SuperUser.
legends2k

Jawaban:

254

Perintah untuk hanya mengalirkannya ke wadah baru (mp4) yang dibutuhkan oleh beberapa aplikasi seperti Adobe Premiere Pro tanpa penyandian (cepat) adalah:

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

Alternatif seperti yang disebutkan dalam komentar, yang menyandikan ulang dengan quaility terbaik ( -qscale 0):

ffmpeg -i input.mov -q:v 0 output.mp4
Conrad Lotz
sumber
70
Karena ini muncul dalam hasil pencarian, saya akan menambahkan perintah yang diperbarui untuk ffmpeg pada saat penulisan: ffmpeg -i input.mov -qscale 0 output.mp4
StudioEvoque
14
@StudioEvoque apa yang dilakukan -qscale 0bendera?
CyberSkull
4
@CyberSkull -qscalemenetapkan tingkat kompresi. Semakin rendah nilai qscale, semakin baik kualitasnya. Nilai qscale yang tersedia berkisar dari 1 (kualitas tertinggi) hingga 31 (kualitas terendah).
RonnyKnoxville
8
@MiguelBartelsman @Baodad a container mengemas banyak aliran video dan audio, menambahkan header dan daftar isi. Wadah Quicktime (mov) dan MPEG (mp4) bekerja sangat berbeda, secara teknis. Jika Anda baru saja mengganti nama file Quicktime ke mp4, Anda berpura-pura menjadi video MPEG, tetapi masih menjadi wadah Quicktime. Harap dicatat: karena Anda menggunakan copyparameter untuk codec, Anda memberi tahu FFMpeg untuk menyalin data media aktual, tanpa melakukan pengodean ulang ke dalam codec lain.
Ichthyo
10
@StudioEvoque berhati-hatilah! Apa yang Anda usulkan di sini adalah sesuatu yang sangat berbeda dari yang OP lakukan dan mungkin inginkan. Anda tidak memberikan spesifikasi codec, jadi Anda meminta FFMpeg untuk melakukan transkode data media aktual ke dalam codec standar untuk dikaitkan dengan wadah MP4. Bahkan jika Anda menggunakan pengaturan kualitas tertinggi, transcoding akan selalu kehilangan kualitas. Hanya ketika Anda menggunakan -c copyAnda memastikan bahwa data media asli seperti itu tidak tersentuh, hanya wadah berubah
Ichthyo