Ses ve videoyu, videoyu birleştirmeyen avconv ile birleştirin


0

YouTube’dan tuhaf bir biçimde görünen yırtık bir akışı birleştirmeye çalışıyorum. Her neyse, video ve ses kendi başlarına oynatılıyor gibi görünüyor ama bir araya getirmeye çalıştığımda, dosya boyutu ses dosyasının orijinal boyutundan biraz daha büyük, bu nedenle hiçbir şey yapmamış gibi görünüyor.

jonathan@localhost:~/foo$ avconv -i video.mp4 -i audio.m4a -c copy audio_and_video.mp4
avconv version 0.8.16-6:0.8.16-1, Copyright (c) 2000-2014 the Libav developers
  built on Sep 16 2014 23:10:48 with gcc 4.7.2
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    creation_time   : 2014-12-06 03:30:37
  Duration: 00:31:35.36, start: 947.680067, bitrate: 1939 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 29.97 tbr, 90k     tbn, 59.94 tbc
    Metadata:
      creation_time   : 2014-12-06 03:30:37
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'audio.m4a':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    creation_time   : 2014-12-13 10:25:20
  Duration: 00:31:35.42, start: 947.745193, bitrate: 64 kb/s
    Stream #1.0(und): Audio: aac, 44100 Hz, stereo, s16
    Metadata:
      creation_time   : 2014-12-13 10:25:20
Output #0, mov, to 'audio_and_video.mov':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    creation_time   : 2014-12-06 03:30:37
    encoder         : Lavf53.21.1
    Stream #0.0(und): Video: libx264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 90k tbn, 90k tbc
    Metadata:
      creation_time   : 2014-12-06 03:30:37
    Stream #0.1(und): Audio: aac, 44100 Hz, stereo
    Metadata:
      creation_time   : 2014-12-13 10:25:20
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
Press ctrl-c to stop encoding
frame=    0 fps=  0 q=-1.0 Lsize=   14892kB time=947.68 bitrate= 128.7kbits/s
video:0kB audio:14530kB global headers:0kB muxing overhead 2.493168%

Ve bazı ek bilgiler:

jonathan@localhost:~/foobar$ file audio.m4a
audio.m4a: ISO Media
jonathan@localhost:~/foobar$ file video.mp4
video.mp4: ISO Media
jonathan@localhost:~/foobar$ file audio_and_video.mp4
audio_and_video.mp4: ISO Media, MPEG v4 system, version 1
jonathan@localhost:~/foobar$ ls -lh
total 468M
-rw-r--r-- 1 jonathan jonathan  15M Mar 12 12:29 audio_and_video.mp4
-rw-r--r-- 1 jonathan jonathan  15M Dec 14 23:50 audio.m4a
-rw-r--r-- 1 jonathan jonathan 439M Dec 14 23:50 video.mp4

Neyi yanlış yapıyorum ve nasıl düzeltilebileceği hakkında herhangi bir fikir çok takdir edilmektedir.

Teşekkür ederim.


Bu avconv zaten biraz eski. Daha yeni bir yapıyı veya alternatif olarak ffmpeg.org'dan statik bir ffmpeg yapıyı deneyebilir misiniz?
slhck

Hmm, bence haklısın. İndirdim, derledim ve yükledim. Şimdi ses ve video akışını başarıyla birleştirdi. Koşarken garip olan ne? avconv kendi başına eski sürümü kullanır. Söylediğimde which avconv işaret eder /usr/local/bin ve şimdi derlediğim bugünün sürümünü gösterir. Yani .. biraz garip, bu.
Jon Weinraub

Hmm, kabuğunu sıfırladığından veya kaçtığından emin ol. hash -r (Bash’de) veya rehash Zsh.
slhck

Bash kullanıyorum ama tanımadığı bir komut yok.
Jon Weinraub

Üzgünüm yazım hatası. demek istedim hash -r. (Düzenlendi)
slhck

Yanıtlar:


1

Avconv 0.8.6 biraz eski olduğundan, bu, avconv'un (veya ffmpeg'in ya da sorunuzun etiketlerinde belirtildiği gibi) yeni bir sürümünü yükleyerek çözülebilecek bir hataya benziyor.

Bu ikisinin farklı projeler ama çok benzer sözdizimi ve işlevsellik açısından ve yeni bir sürüm elde etmek, "statik yapı" yı indirmek kadar basittir. ffmpeg.org Tüm büyük işletim sistemleri için var. Derlemeye gerek yok - çıkartın ve çalıştırın.

Avconv için yalnızca Windows oluşturur, bu yüzden kendiniz derlemeniz gerekir.

Genel olarak, avconv ve ffmpeg ile, standart dağıtımların paket kaynaklarında sunduklarından çok, genellikle yeni bir sürümünü kullanmak istersiniz.


Linux'u (Debian) bash ile kabuğum olarak kullanıyorum. Wget işleminden sonra, config, make, make install ve git make install çalıştı avconv kök olarak, ancak normal bir kullanıcı olarak göre göre tam yol vermek zorunda kaldı which / usr / local / share / bin 'i işaret ediyordu.
Jon Weinraub
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.