blueberryCoder / LiveStream

一个实现直播的解决方案,视频采用H264编码、音频采用ACC编码、传输采用Rtmp协议

Home Page:http://blog.csdn.net/a992036795/article/details/64460049

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

可以实时的推送吗?

MrSongyu opened this issue · comments

我可以实时的去推送吗?就是边拍摄边推送!

就是实时的

不能用,跑不起来,少文件吧,能把里面的jni文件整理一下吗,感觉好乱

尽快回复看看能不能用了

我查看了下,没有少文件啊,你确定你的环境配好了吗?报什么错?

Process: com.blueberry.media, PID: 7532
java.lang.RuntimeException: 打开摄像头失败
at com.blueberry.media.VideoGatherer.openCamera(VideoGatherer.java:280)
at com.blueberry.media.VideoGatherer.initCamera(VideoGatherer.java:82)
at com.blueberry.media.MediaPublisher.initVideoGatherer(MediaPublisher.java:93)
at com.blueberry.media.MainActivity.surfaceChanged(MainActivity.java:113)一直在保这个错误,说我的Camer打不开

系统版本多少?什么手机

和系统版本有关系吗? 手机是联想,手机系统是5.0.1

还有一个问题我设置parameters.setPreviewSize(previewSize.width, previewSize.height);这句话之后就报错。
知道这个原因吗

我这个只在小米2s和三星A8000上测试过。
1.关于摄像头打不开的问题,检查一下这个应用是否成功获取了摄像头权限。
2.parameters.setPreviewSize(previewSize.width, previewSize.height),这句话报错,你能把错误信息发一下吗

Process: com.blueberry.media, PID: 18072
java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:1876)
at com.blueberry.media.VideoGatherer.setCameraParameters(VideoGatherer.java:230)
at com.blueberry.media.VideoGatherer.initCamera(VideoGatherer.java:83)
at com.blueberry.media.MediaPublisher.initVideoGatherer(MediaPublisher.java:93)
at com.blueberry.media.MainActivity.surfaceChanged(MainActivity.java:113)能看到吗? 代码行数你应该可以看的到

这个很有可能是因为没有找打合适的尺寸,引起的,
for (Camera.Size size : supportedPreviewSizes
) {
if (size.width >= 320 && size.width <= 720) {
previewSize = size;
Log.i(TAG, String.format("find preview size width=%d,height=%d", previewSize.width,
previewSize.height));
break;
}
}

我设置的找尺寸,是在 320 - 720 之间,你可以扩大一下范围找找,比如设置 160 --1980 试试看
你打个断点,看看previewSize.width,previewSize.Height是不是没取到值

parameters.setPreviewSize(1280, 720);
parameters.setPreviewFpsRange(destRange[PREVIEW_FPS_MIN_INDEX],destRange[PREVIEW_FPS_MAX_INDEX]);
// parameters.setFocusMode(FOCUS_MODE_AUTO);
parameters.setPreviewFormat(ImageFormat.NV21);
我是这样写的。把这个注释掉了,应该没问题。开始推送了,但是我用网页接收不到流。

有这样一堆log 看一下哦
4-11 17:11:32.639 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.662 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.686 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.694 178-7719/? E/CameraHal_Marvin: OV2680: Sensor_IsiExposureControlIss: set: g=6.375000, Ti=0.030008, skip=0
04-11 17:11:32.711 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.734 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.757 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.780 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.804 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.827 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1
04-11 17:11:32.850 7657-7687/com.blueberry.media D/PUBLISH: send packet body[0]=af,body[1]=1

279883011我的QQ,加我qq聊一下

这种情况是发送成功了,网页机收不到,要检查一下播放端喽

点击“开始”的时候报出了这个。
04-11 17:17:04.678 7657-7657/com.blueberry.media E/MediaPublisher: 初始化音频编码器失败

这个没关系的,我打印语句写错位置了。。。

调整一下:
public void initEncoders() {
try {
mMediaEncoder.initAudioEncoder(audioParams.sampleRate, audioParams.channelCount);
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "初始化音频编码器失败");

    }

    try {
        int colorFormat = mMediaEncoder.initVideoEncoder(videoParams.previewWidth, videoParams.previewHeight, FPS);
        mVideoGatherer.setColorFormat(colorFormat);
    } catch (IOException e) {
        e.printStackTrace();
    }
}