在android中,有一个名为Exoplayer的库,它与从给定URL流媒体视频有关。
根据这一点,firebase不支持视频流,尽管您可以将uri从url传递到videoview(它实际上会流)。
问题:
是的,它可以从Firebase流式传输视频。
首先在xml文件中创建exoplayer
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="0sp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
我已经将高度设置为0,因为我将在稍后以编程方式固定高度
SimpleExoPlayer player;
//declare your PlayerView
final PlayerView playerView = mview.findViewById(R.id.video_view);
//your database ref
final StorageReference storageReference =
FirebaseStorage.getInstance().getReference("/Post_Video/"+ video + ".mp4");
player = ExoPlayerFactory.newSimpleInstance(MainActivity.this);
playerView.setPlayer(player);
playerView.setVisibility(View.VISIBLE);
playerView.getLayoutParams().height=550;
playerView.getLayoutParams().width=950;
storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter.Builder(MainActivity.this).build();
TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));
ExoPlayer exoPlayer = (SimpleExoPlayer) ExoPlayerFactory.newSimpleInstance(MainActivity.this);
Uri video = Uri.parse(uri.toString());
DefaultHttpDataSourceFactory dataSourceFactory = new DefaultHttpDataSourceFactory("video");
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
MediaSource mediaSource = new ExtractorMediaSource(video,dataSourceFactory,extractorsFactory,null,null);
playerView.setPlayer(exoPlayer);
exoPlayer.prepare(mediaSource);
exoPlayer.setPlayWhenReady(false);
}
});
我将mp4视频转码成若干帧速率,如5FPS、10FPS。。30FPS,并使用MP4Box将其分段,以便在DASH IF播放器中播放。 FFMPEG命令生成具有相同分辨率的多帧视频: ffmpegfball.mp4-f mp4-vcodec libx264-配置文件: v高-vf刻度=1280:-1-b: v1000k-minate1000k-maxate1000k-bufsize1000k-nal
我正在开发一个有视频流功能的应用程序。我正在使用firebase数据库和firebase存储。我试图找到一些关于firebase存储如何处理视频文件的文档,但真的找不到太多。
问题内容: 当我尝试从Rails调用存储过程时,出现以下异常: Rails Wiki中 有一个页面讨论用于解决此问题的MySQL适配器的修补程序,但是它已过时,似乎不再起作用。 配置代码正确地启用了存储过程,但是在存储过程调用之后连接仍然不同步并且新方法不再起作用,仍然存在问题。 关于如何使它工作的任何建议? 这是我正在使用的代码: 无论是否返回任何结果,它都会引发相同的异常。 问题答案: 将程序
我正在发送视频帧的形式的JPEG图像到我的服务器上的RMTP流。在服务器端,我希望将流(ip+端口)连接到ffmpeg,这样它就可以从流中获取图像,并从中创建视频流。 实际上,我的服务器正在监听一个IP和端口来接收帧。这部分完成了。我遇到的问题是如何使用FFMPEG将这些帧转换成视频流。谁能告诉我如何做到这一点吗?我知道是我应该使用的,但我在Google上没有找到它的语法和文档。
问题内容: 我正在从另一个来源接收ZipInputStream,并且需要将第一项的InputStream提供给另一个来源。 我希望能够在不将临时文件保存在设备上的情况下执行此操作,但是,我知道获取单个条目的InputStream的唯一方法是通过ZipFile.getInputStream(entry),并且因为我有一个ZipInputStream而不是ZipFile , 这是不可能的。 所以我最好
问题内容: 我需要开发一个可长期离线运行的Web应用程序。为了使它可行,我无法避免将敏感数据(个人数据,而不是您将仅存储散列数据的类型)保存在本地存储中。 我接受不建议这样做,但是我几乎没有选择要执行以下操作来保护数据: 使用斯坦福JavaScript加密库和AES-256将所有内容都加密到本地存储中 用户密码是加密密钥,未存储在设备上 通过ssl从单个受信任的服务器提供所有内容(在线时) 使用o