簡體   English   中英

使 GStreamer 正確讀取帶有損壞視頻信息的 FLV 文件

[英]Make GStreamer correctly read FLV files with corrupt video info

我有一組要使用 GStreamer 播放的 FLV 文件。 所有文件都有不正確的標頭/元數據,如下所示:

https://drive.google.com/file/d/1FcKbYd2-D7ZiIG5VpRxpbqshCixp8iaR/view?usp=sharing

VLC 和 ffplay 都能夠使用它們的特殊魔法播放這個文件。 盡管 Mediainfo 顯示了該文件的截斷視頻信息:

Video
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Codec ID                                 : 7
Duration                                 : 12 s 633 ms
Frame rate mode                          : Constant
Frame rate                               : 60.000 FPS
Bit depth                                : 8 bits

對於正確的文件,至少有格式配置文件和級別。

gst-discoverer-1.0根本不想檢測視頻流:

Properties:
  Duration: 0:00:00.116000000
  Seekable: yes
  Live: no
  container: Flash
    audio: MPEG-4 AAC
      Stream ID: a72c1038e0bf52d7668cb945588d7bca2547bd58212aa7f08db439aeadfcbd95/audio
      Language: <unknown>
      Channels: 2 (front-left, front-right)
      Sample rate: 48000
      Depth: 32
      Bitrate: 0
      Max bitrate: 0
    video: H.264
      Stream ID: (NULL)
      Width: 0
      Height: 0
      Depth: 0
      Frame rate: 0/1
      Pixel aspect ratio: 1/1
      Interlaced: false
      Bitrate: 0
      Max bitrate: 0

gst-play-1.0啟動,但顯示錯誤且不顯示預覽:

gst-play-1.0.exe "C:\Users\me\Downloads\custom.flv"
Press 'k' to see a list of keyboard shortcuts.
Now playing C:\Users\me\Downloads\custom.flv
WARNING No decoder available for type 'video/x-h264, stream-format=(string)avc, codec_data=(buffer)000000016742c020da014016ec0440000003004000001e03c60ca80000000168ce3c80'.
WARNING debug information: ../gst/playback/gsturidecodebin.c(960): unknown_type_cb (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0
Redistribute latency...
0:00:12.6 / 0:00:12.6
Reached end of play list.

我正在尋找任何方法來讓 GStreamer 正確播放此類文件(也許有一些插件允許這樣做?)或修復視頻標題。

使用 FFMPEG 重新混合您的視頻文件:

ffmpeg -i custom.flv -c:v copy -c:a copy fixed.flv

問題出在視頻標題中。 為了生成標題,我使用了 FFmpeg 編碼器返回的額外數據。 但是標頭不僅僅是額外的數據,它應該按照 ISO/IEC-14496-15 標准生成為AVCDecoderConfigurationRecord結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM