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

945
Srekel

Ich habe ein FMS (Flash Media Server 4), das die Videoströme in .f4v-Dateien schreibt. Soweit ich sehen und verstehen kann, werden nur die Video- / Audiodaten ohne Container geschrieben, obwohl ich mich irren könnte. Die URL enthält "mp4:", also denke ich, dass es sich um einen mpeg-4-Container handelt. Wenn ich es jedoch in VLC öffne, wird es nicht abgespielt und es werden keine Codec-Informationen angezeigt.

Ich denke, ich muss es in einen Container packen, und es muss so schnell wie möglich sein, ohne die tatsächlichen Daten zu beeinflussen (dh ich möchte es nicht transcodieren). Ich habe mit ffmpeg und mkvtoolnix gesucht, aber mkvtoolnix kann die Daten überhaupt nicht verarbeiten (erzeugt einen Fehler) und ich habe es geschafft, sie mit ffmpeg in eine neue Datei zu konvertieren, aber das Ergebnis ist eine größere Datei, die einen merkwürdigen Effekt hat 30 Sekunden Pause am Anfang.

Ich bin sicher, dass es eine einfache Möglichkeit gibt, dies zu tun, aber ich habe es 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, lautet: Fehler: Quicktime / MP4-Leser: Konstante Stichprobengröße und variable Dauer noch nicht unterstützt. Wenden Sie sich an den Autor, wenn Sie über eine solche Beispieldatei verfügen.

2

1 Antwort auf die Frage

0
Srekel

Nachdem ich die richtigen Keywords für Google gefunden hatte, fand ich die Lösung:

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

Meine Ausgabedatei ist zwar ziemlich mies, aber ich denke, das hängt möglicherweise mehr mit meiner Eingabedatei zusammen oder wie ffmpeg dieses Format liest.