网络录制的视频未在 ipad 中播放

Posted

技术标签:

【中文标题】网络录制的视频未在 ipad 中播放【英文标题】:web recorded video not played in ipad 【发布时间】:2015-09-17 03:41:37 【问题描述】:

我使用 Flash 媒体服务器从网络上录制视频。现在使用 flex 默认播放器,我尝试播放视频,但它无法播放 ipad。(ios 设备) 我检查了该视频编解码器,它类似于以下内容:

libxavs --enable-libxvid --enable-decklink --enable-zlib
  libavutil      52. 92.100 / 52. 92.100
  libavcodec     55. 69.100 / 55. 69.100
  libavformat    55. 45.100 / 55. 45.100
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 10.100 /  4. 10.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
[flv @ 0000000002b60220] Stream discovered after head already parsed
Input #0, flv, from 'C:\Users\Administrator\Desktop\123654789.flv':
  Metadata:
    canSeekToEnd    : false
    createdby       : FMS 4.5
    creationdate    : Tue Jun 30 16:27:22 2015
  Duration: 00:00:15.25, start: 0.000000, bitrate: 52 kb/s
    Stream #0:0: Video: flv1, yuv420p, 320x227, 1k tbr, 1k tbn, 1k tbc
    Stream #0:1: Audio: speex, 16000 Hz, mono, s16, 20 kb/s
    Stream #0:2: Data: none

我通过以下方式录制视频:

netstream.publish("FILENAME","record");

谢谢。

编辑:

我得到的另一个在 ios 中播放的 flv 文件。但是当我检查它的编解码器时,它类似于以下内容:

r --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab -
-enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
--enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-
libxavs --enable-libxvid --enable-decklink --enable-zlib
  libavutil      52. 92.100 / 52. 92.100
  libavcodec     55. 69.100 / 55. 69.100
  libavformat    55. 45.100 / 55. 45.100
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 10.100 /  4. 10.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, flv, from 'C:\Users\Administrator\Desktop\16402.flv':
  Metadata:
    major_brand     : 3gp4
    minor_version   : 0
    compatible_brands: isom3gp4
    encoder         : Lavf55.45.100
  Duration: 00:00:13.23, start: 0.000000, bitrate: 304 kb/s
    Stream #0:0: Video: flv1, yuv420p, 320x240, 300 kb/s, 15 fps, 15 tbr, 1k tbn
, 1k tbc
    Stream #0:1: Audio: mp3, 22050 Hz, mono, s16p, 0 kb/s

如何,我可以像下面这样记录/转换 flv 吗?

【问题讨论】:

【参考方案1】:

iPAD 不播放 FLV 视频是正常现象,因为 iOS 不支持它,正如 Apple 提到的 here :

iOS 支持许多行业标准的视频格式和压缩标准,包括:

H.264 视频,最高 1.5 Mbps,640 x 480 像素,每秒 30 帧,H.264 基线配置文件的低复杂度版本,具有最高 160 Kbps 的 AAC-LC 音频,48 kHz,立体声音频输入.m4v、.mp4 和 .mov 文件格式

H.264 视频,最高 768 Kbps,320 x 240 像素,每秒 30 帧,Baseline Profile 最高 1.3 级,AAC-LC 音频最高 160 Kbps,48 kHz,.m4v,.mp4 格式的立体声音频, 和 .mov 文件格式

MPEG-4 视频,最高 2.5 Mbps,640 x 480 像素,每秒 30 帧,带 AAC-LC 音频的简单配置文件,最高 160 Kbps,48 kHz,.m4v、.mp4 和 .mov 格式的立体声音频文件格式

希望能有所帮助。

【讨论】:

那么我该怎么做才能在 iPad 上播放该视频。它还有其他选择。 @ketan 您必须将其转换为 iOS 支持的格式。 如何在 flex 中转换?还要检查我编辑的问题 @ketan 不,flex 不能那样做!例如,您可以使用ffmpeg,您可以找到许多类似this one 的教程... @ketan 我认为您的第二个视频是 3gp4(可以包含 MPEG-4 视频,请看here),带有 mp3 音频,因此可以通过 iOS 播放。 【参考方案2】:

您应该在 Flash Media Server 上将其转码为 H.264 mp4 流,并将该流馈送到您的 flex 应用程序中。如果您使用 Adob​​e Live Video Encoder 录制视频,则可以选择设置输出格式。几年前我就这样做了。

【讨论】:

没办法,iOS不支持flv,所以Flash Media Server会自动将视频转成iOS支持的流。 检查我的问题。我从某个地方获得的第二个 flv 视频受到支持并且播放得非常好。在我的问题中检查它的编解码器。

以上是关于网络录制的视频未在 ipad 中播放的主要内容,如果未能解决你的问题,请参考以下文章

iPad 2 视频子系统是不是不稳定?

如何在 ipad 应用程序中播放文档文件夹中的视频文件

为啥我录制出来的视频很卡?

Ipad 无法在我的网络应用程序上同时播放音频和视频

怎么把手机上的视频投屏到ipad上

基于 TensorFlow 示例 Swift 录制和播放视频