我有一个 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
找出在 Google 中输入的正确关键词后,我找到了解决方案:
C:\Program Files (x86)\ffmpeg\bin>ffmpeg -i .f4v -acodec 复制 -vcodec 复制 -y .mkv
虽然我的输出文件很糟糕,但我认为这可能与我的输入文件或 ffmpeg 如何读取该格式更相关。