小编sum*_*ngh的帖子

如何使用FFMPEG保存rtsp流而不丢失数据包

我正在使用FFMPEG保存直播相机的流.当我试图保存视频时,一些数据包丢失,因此视频无法正常播放.我正在使用以下FFMPEG

我发送的命令是 -

 String[] cmd = {"-y", "-i", "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov", "-c:v", "libx264", "-acodec", "aac","-t", time, file_path};
 execFFmpegBinary(cmd);
Run Code Online (Sandbox Code Playgroud)

我也尝试这个命令,但结果是一样的

String[] cmd = { "-y", "-rtsp_transport", "tcp", "-i",  "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov", "-c:v", "libx264", "-preset", "slow", "-b:v", "500k", "-maxrate", "500k", "-bufsize", "3000k", "-vf", "scale=-1:480", "-threads", "0", "-codec:a", "libfdk_aac", "-b:a", "128k", "-t", time, file_path};
Run Code Online (Sandbox Code Playgroud)

这是命令输出的日志 -

07-15 15:16:55.180 25713-25713/com.github.sampleffmpeg V/output: progress : [rtsp @ 0x420391c0] max delay reached. need to consume packet
        07-15 15:16:55.180 25713-25713/com.github.sampleffmpeg V/output: progress : [NULL @ 0x4203ba00] RTP: missed 455 packets
        07-15 …
Run Code Online (Sandbox Code Playgroud)

android ffmpeg rtsp live-streaming android-ffmpeg

7
推荐指数
2
解决办法
8493
查看次数

camerasource.takePicture() 在某些设备中保存旋转的图像

我正在使用视觉 API 来跟踪面部。我根据面部位置应用了蒙版。当我从前置摄像头拍照时,我调用 camerasource.takePicture() 来保存图像。我在某些设备(如三星)中遇到图像旋转问题,捕获图像显示蒙版和人脸不同的不同位置。我使用 Exif 类来获取图像的方向,但它总是返回 0,所以我无法旋转图像。我正在使用以下类来获取方向和旋转图像。

 public class ExifUtils {
 public Bitmap rotateBitmap(String src, Bitmap bitmap) {
    try {
        int orientation = getExifOrientation(src);

        if (orientation == 1) {
            return bitmap;
        }

        Matrix matrix = new Matrix();
        switch (orientation) {
            case 2:
                matrix.setScale(-1, 1);
                break;
            case 3:
                matrix.setRotate(180);
                break;
            case 4:
                matrix.setRotate(180);
                matrix.postScale(-1, 1);
                break;
            case 5:
                matrix.setRotate(90);
                matrix.postScale(-1, 1);
                break;
            case 6:
                matrix.setRotate(90);
                break;
            case 7:
                matrix.setRotate(-90);
                matrix.postScale(-1, 1);
                break;
            case 8:
                matrix.setRotate(-90);
                break;
            default:
                return bitmap;
        } …
Run Code Online (Sandbox Code Playgroud)

android google-vision

5
推荐指数
2
解决办法
2187
查看次数