如何取得 FMS h264 流並將其包裝在容器中?

如何取得 FMS h264 流並將其包裝在容器中?

我有一個 FMS(Flash Media Server 4),它將視訊流寫入 .f4v 檔案。就我所見和理解,它只寫入視訊/音訊數據,根本沒有容器,儘管我可能會弄錯。該網址確實包含“mp4:”,所以我認為它可能是 mpeg-4 容器?但是當我在 VLC 中打開它時,它無法播放,並且不顯示編解碼器資訊。

所以我想我必須將它包裝在一個容器中,並且我需要它盡可能快並且不影響實際數據(即我不想對其進行轉碼)。我已經使用 ffmpeg 和 mkvtoolnix 進行了查看,但是 mkvtoolnix 根本無法處理數據(產生錯誤),並且我已經設法使用 ffmpeg 將其轉換為新文件,但結果是一個更大的文件,有一個奇怪的開始時停頓30秒。

我確信有一種簡單的方法可以做到這一點,但我還沒有找到。

這是 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

我從 mkvtoolnix 得到的錯誤是:錯誤:Quicktime/MP4 讀取器:尚不支援恆定樣本大小和可變持續時間。如果您有這樣的範例文件,請聯絡作者。

答案1

在找到正確的關鍵字放入谷歌後,我找到了解決方案:

C:\Program Files (x86)\ffmpeg\bin>ffmpeg -i .f4v -acodec 複製 -vcodec 複製 -y .mkv

雖然我的輸出檔非常糟糕,但我認為這可能與我的輸入檔或 ffmpeg 如何讀取該格式更相關。

相關內容