Kirjoittaja Aihe: ffmpeg äänen ja kuvan tahdistus  (Luettu 2767 kertaa)

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
ffmpeg äänen ja kuvan tahdistus
« : 06.09.11 - klo:17.04 »
Olen ffmpeg ohjelmalla leikannut pätkiä yle areenan videoista.

Hidas menetelmä, jossa ääni ja kuva ovat synkronissa
Koodia: [Valitse]
ffmpeg -i input.flv -ss "00:20:22" -t "00:00:28.2" -sameq output.avi
# -ss = aloituskohta
# -t  = leikkeen pituus
# Hakee aloituskohtaa:
# frame=    0 fps=  0 q=0.0 size=      10kB time=10000000000.00 bitrate=   0.0kbit
Tässä ffmpeg "kelaa läpi" koko videon aloituskohtaan asti ja vasta sitten tallentaa halutun kohdan.

Nopea menetelmä esikatseluun
Koodia: [Valitse]
ffmpeg -ss "00:20:22" -t "00:00:28.2" -i input.flv -sameq output.flvTässä ffmpeg hyppää suoraan aloituskohtaan ja tallentaa halutun kohdan.

Onko mitään keinoa käyttää nopeaa menetelmää siten, että ääni ja kuva olisivat synkronissa?

nm

  • Käyttäjä
  • Viestejä: 16296
    • Profiili
Vs: ffmpeg äänen ja kuvan tahdistus
« Vastaus #1 : 07.09.11 - klo:01.31 »
Oletko kokeillut jälkimmäistä komentoa myös niin, että video tallennetaan AVI-tiedostoon, eikä FLV:ksi?

kojis

  • Käyttäjä
  • Viestejä: 98
    • Profiili
Vs: ffmpeg äänen ja kuvan tahdistus
« Vastaus #2 : 07.09.11 - klo:11.25 »
Koita "-async 1"

Lainaus
`-async samples_per_second'
Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps, the parameter is the maximum samples per second by which the audio is changed. -async 1 is a special case where only the start of the audio stream is corrected without any later correction.

http://ffmpeg.org/ffmpeg-doc.html

Cultor

  • Käyttäjä
  • Viestejä: 174
    • Profiili
Vs: ffmpeg äänen ja kuvan tahdistus
« Vastaus #3 : 07.09.11 - klo:20.56 »
Oletko kokeillut jälkimmäistä komentoa myös niin, että video tallennetaan AVI-tiedostoon, eikä FLV:ksi?

Eikös ennemminkin mp4-säiliöön? Minä konvertoin kaikki tallentamani areena-videot mp4-säiliöön.

nm

  • Käyttäjä
  • Viestejä: 16296
    • Profiili
Vs: ffmpeg äänen ja kuvan tahdistus
« Vastaus #4 : 07.09.11 - klo:21.48 »
Eikös ennemminkin mp4-säiliöön? Minä konvertoin kaikki tallentamani areena-videot mp4-säiliöön.

Juu, silloin ffmpeg myös käyttää oletuksena hieman parempaa pakkausta äänelle (AAC vs MP2). Uudelleenpakkauksen sijaan raidat kannattaa tosin kopioida, jos vain sietää pientä epätarkkuutta leikkauskohtien ajoituksessa:

Koodia: [Valitse]
ffmpeg -ss "00:20:22" -t "00:00:28.2" -i input.flv -acodec copy -vcodec copy output.mp4
Itse en huomaa mitään eroa A/V-synkassa K-Veikon komentojen välillä. Oma ffmpeg-binäärini on peräisin itse käännetystä libav:sta, v0.7-235-g965dbe0.
« Viimeksi muokattu: 07.09.11 - klo:21.50 kirjoittanut nm »

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Vs: ffmpeg äänen ja kuvan tahdistus
« Vastaus #5 : 26.06.12 - klo:23.34 »
Onko mitään keinoa käyttää nopeaa menetelmää siten, että ääni ja kuva olisivat synkronissa?

man avconv kertoo:

-ss position (input/output)
          
Lainaus
When used as an input option (before "-i"), seeks in this input
           file to position. When used as an output option (before an output
           filename), decodes but discards input until the timestamps reach
           position. This is slower, but more accurate.

ffmpeg kertoo:

Lainaus
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
« Viimeksi muokattu: 26.06.12 - klo:23.46 kirjoittanut K-Veikko »

nm

  • Käyttäjä
  • Viestejä: 16296
    • Profiili
Vs: ffmpeg äänen ja kuvan tahdistus
« Vastaus #6 : 28.06.12 - klo:09.01 »
Oliko leikkauksessa jokin ongelma avconvilla?

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Vs: ffmpeg äänen ja kuvan tahdistus
« Vastaus #7 : 29.06.12 - klo:10.49 »
Oliko leikkauksessa jokin ongelma avconvilla?

En ole huomannut mitään eroa ffmpegiin. Tuo "man avconv" antoi vastauksen alkuperäiseen kysymykseen.

Leikkauksen tarkan alku- ja loppukohdan tarkistaa visuaalisesti helpoiten mplayer'illa: mplayer -ss "hh:mm:ss.sss" -t "hh:mm:ss.sss" video.avi