Wie nehme ich einen FMS h264-Stream und verpacke ihn in einen Container?

Wie nehme ich einen FMS h264-Stream und verpacke ihn in einen Container?

Ich habe einen FMS (Flash Media Server 4), der die Videostreams in .f4v-Dateien schreibt. Soweit ich es sehe und verstehe, schreibt er nur die Video-/Audiodaten ohne Container, aber ich könnte mich irren. Die URL enthält „mp4:“, also denke ich, dass es sich um einen MPEG-4-Container handeln könnte? Aber wenn ich es in VLC öffne, wird es nicht abgespielt und zeigt keine Codec-Informationen an.

Ich denke also, ich muss es in einen Container packen, und zwar so schnell wie möglich und ohne die eigentlichen Daten zu beeinträchtigen (d. h. ich möchte es nicht transkodieren). Ich habe es mit ffmpeg und mkvtoolnix versucht, aber mkvtoolnix kann die Daten überhaupt nicht verarbeiten (produziert einen Fehler) und ich habe es geschafft, es mit ffmpeg in eine neue Datei zu konvertieren, aber das Ergebnis ist eine größere Datei, die am Anfang eine seltsame 30-Sekunden-Pause hat.

Ich bin sicher, dass es hierfür eine einfache Möglichkeit gibt, habe sie aber noch nicht gefunden.

Hier ist die Ausgabe von ffprobe.exe:

C:\Program Files (x86)\ffmpeg\bin>ffprobe.exe time.f4v
ffprobe version N-31627-g9c2651a, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jul 23 2011 15:02:13 with gcc 4.6.1
  configuration: --enable-gpl --enable-version3 --enable-memalign-hack --enable-runtime-cpudetect --
enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb
 --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --en
able-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enabl
e-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil    51. 11. 0 / 51. 11. 0
  libavcodec   53.  9. 0 / 53.  9. 0
  libavformat  53.  6. 0 / 53.  6. 0
  libavdevice  53.  2. 0 / 53.  2. 0
  libavfilter   2. 27. 3 /  2. 27. 3
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 003BA280] multiple edit list entries, a/v desync might occur, patch welco
me
[mov,mp4,m4a,3gp,3g2,mj2 @ 003BA280] multiple edit list entries, a/v desync might occur, patch welco
me
[mov,mp4,m4a,3gp,3g2,mj2 @ 003BA280] multiple edit list entries, a/v desync might occur, patch welco
me
[mov,mp4,m4a,3gp,3g2,mj2 @ 003BA280] max_analyze_duration 5000000 reached at 5018000
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'time.f4v':
  Metadata:
    major_brand     : f4v
    minor_version   : 0
    compatible_brands: isommp42m4v
    creation_time   : 2016-11-13 05:20:19
  Duration: 00:01:15.74, start: 0.000000, bitrate: 686 kb/s
    Stream #0.0(eng): Video: h264 (Baseline), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], PAR 3:4 DAR 4:3,
 59.94 tbr, 1k tbn, 119.88 tbc
    Metadata:
      creation_time   : 2016-11-13 05:20:19
    Stream #0.1(eng): Audio: mp3, 22050 Hz, mono, s16, 48 kb/s
    Metadata:
      creation_time   : 2016-11-13 05:20:19
    Stream #0.2(eng): Data: amf0 / 0x30666D61
    Metadata:
      creation_time   : 2016-11-13 05:20:19
Unsupported codec with id 0 for input stream 2

Der Fehler, den ich von mkvtoolnix bekomme, ist:Fehler: Quicktime/MP4-Reader: Konstante Samplegröße und variable Dauer werden noch nicht unterstützt. Kontaktieren Sie den Autor, wenn Sie eine solche Sampledatei haben.

Antwort1

Nachdem ich herausgefunden hatte, welche Schlüsselwörter ich in Google eingeben sollte, fand ich die Lösung:

C:\Programme (x86)\ffmpeg\bin>ffmpeg -i .f4v -acodec copy -vcodec copy -y .mkv

Meine Ausgabedatei ist allerdings ziemlicher Mist, aber ich denke, das hängt eher mit meiner Eingabedatei zusammen oder damit, wie ffmpeg dieses Format liest.

verwandte Informationen