Neden ogg dosyasını oynatabilirim ama FFMPEG ile mkv'ye veya mp4'e çeviremiyorum?


0

Bir ogg videoyu mp4 veya mkv'ye dönüştürmek istiyorum , ancak farklı hatalar ortaya çıkıyor.

Yakaladığım iki akış (aynı kaynaktan) var. Ogg kabındalar.

Ben çalışırsanız mkv dönüştürebilirsiniz ile ffmpeg -i stream.ogg -c copy -map 0 stream.mkv, bu hata iletisi görüntülenir:

ffmpeg version 0.10.7 Copyright (c) 2000-2013 the FFmpeg developers
  built on May 14 2013 21:35:02 with gcc 4.7.2 20120921 (Red Hat 4.7.2-2)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i686 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-libass --enable-libcdio --enable-libcelt --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --cpu=i686 --enable-runtime-cpudetect
  libavutil      51. 35.100 / 51. 35.100
  libavcodec     53. 61.100 / 53. 61.100
  libavformat    53. 32.100 / 53. 32.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 61.100 /  2. 61.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  6.100 /  0.  6.100
  libpostproc    52.  0.100 / 52.  0.100
[ogg @ 0x8685b00] Estimating duration from bitrate, this may be inaccurate
Input #0, ogg, from 'stream.ogg':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: theora, yuv420p, 640x480 [SAR 1:1 DAR 4:3], 8 fps, 8 tbr, 8 tbn, 8 tbc
    Stream #0:1: Audio: flac, 48000 Hz, 1 channels, s16
    Metadata:
      ENCODER         : Lavf53.32.100
Output #0, matroska, to '/dev/shm/stream.mkv':
  Metadata:
    encoder         : Lavf53.32.100
    Stream #0:0: Video: theora (theo / 0x6F656874), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 8 fps, 1k tbn, 8 tbc
    Stream #0:1: Audio: flac ([172][241][0][0] / 0xF1AC), 48000 Hz, 1 channels
    Metadata:
      ENCODER         : Lavf53.32.100
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[matroska @ 0x8835880] Application provided invalid, non monotonically increasing dts to muxer in stream 1: 1440 >= 1440
av_interleaved_write_frame(): Invalid argument

Ben çalışırsan MP4 çevirebiliriz ile ffmpeg -i stream.ogg -c copy -map 0 stream.mp4, bu hata iletisi görüntülenir:

track 0: could not find tag, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?)

Dosyalar mplayer ve ffplay ile oynatılabilir. Bir video ve bir ses akışı içerirler:

$ ffmpeg -i stream.ogg
[ogg @ 0x85a9b00] Estimating duration from bitrate, this may be inaccurate
Input #0, ogg, from 'stream.ogg':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: theora, yuv420p, 640x480 [SAR 1:1 DAR 4:3], 8 fps, 8 tbr, 8 tbn, 8 tbc
    Stream #0:1: Audio: flac, 48000 Hz, 1 channels, s16
    Metadata:
      ENCODER         : Lavf53.32.100

Dosyaları VLC ile oynattığımda iki uyarı ve iki hata alıyorum (kırmızı), ancak dosyalar çalıyor:

TagLib: Vorbis::File::read() - Could not find the Vorbis comment header.
TagLib: Vorbis::File::read() - Could not find the Vorbis comment header.
[0xb71029c0] ogg demux error: Got invalid packet, read 62187 of 63676: OggS
[0xb6d00618] main input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !

Dosyalarda sorun nedir? Dosyaları dönüştürmenin bir yolu var mı, örneğin ffmpeg'e hataları yoksaymasını söyleme? Sorunu çözerse, videonun ilk veya son saniyesini atlamak sorun olmazdı.


Lütfen çıktıyı kesmeyin. Oyur ilk komutunun tam ffmpeg günlüğünü gönderin. İkincisi çalışmıyor çünkü MP4 kapları Theora videosunu desteklemiyor ve siz kullandığınızda yalnızca video bit akışını kopyalıyorsunuz -c copy.
slhck

@ slhck ♦ Tamam, şimdi çıktının kalanını ekledim. Yardımcı olur mu?
erik

Yanıtlar:


2

Ve cevap:

  • mp4 kaplar theora videoyu desteklemiyor (teşekkür ederim slhck)
  • son bir gecelik yapı ile sadece çalışır

Gelecek için: Eğer işe yaramazsa daima gece yapmayı deneyin.

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.