小编Nat*_*Kot的帖子

使用AudioConverter进行AAC编码并写入AVAssetWriter

我正在努力编码从AVCaptureSession使用中 接收的音频缓冲区AudioConverter,然后将它们附加到AVAssetWriter.

我没有收到任何错误(包括OSStatus响应),并且CMSampleBuffer生成的 s似乎有有效数据,但生成的文件根本没有任何可播放的音频.当与视频一起写入时,视频帧停止附加几帧(appendSampleBuffer() 返回false,但没有AVAssetWriter.error),可能是因为资产编写者正在等待音频赶上.我怀疑它与我为AAC设置启动的方式有关.

该应用程序使用RxSwift,但我删除了RxSwift部件,以便更容易理解更广泛的受众.

请查看以下代码中的评论以获取更多...评论

给定一个设置结构:

import Foundation
import AVFoundation
import CleanroomLogger

public struct AVSettings {

let orientation: AVCaptureVideoOrientation = .Portrait
let sessionPreset                          = AVCaptureSessionPreset1280x720
let videoBitrate: Int                      = 2_000_000
let videoExpectedFrameRate: Int            = 30
let videoMaxKeyFrameInterval: Int          = 60

let audioBitrate: Int                      = 32 * 1024

/// Settings that are `0` means variable rate.
/// The `mSampleRate` and `mChennelsPerFrame` is overwritten at run-time
/// to values …
Run Code Online (Sandbox Code Playgroud)

encoding aac core-audio ios swift

10
推荐指数
1
解决办法
2063
查看次数

这些方法的安全性,用于编码和解码PHP会话

在某种程度上,这个问题可以被看作是一个扩展这一项.

我们正在考虑发布一个类来处理反序列化和序列化存储在大型生产网站上的表中的会话数据,以便我们可以编辑任意会话数据.

问题是,session_decode()填充当前$_SESSION而不返回已解码的数组,并且session_encode()不对给定的数组进行编码(它只返回当前会话的序列化字符串.)

默认的PHP会话序列化处理程序不仅仅serialize()用于对会话进行编码,因此获得相同的编码和解码会话功能的唯一方法是移动全局$_SESSION变量(即存储到会话,检索数据和恢复) )或尝试重现其所做的session.serialize_handler实现.

我们选择后一种复制方法,因为它似乎不那么突兀.在docs中的session_encodesession_decode的评论部分中已经进行了多次尝试.我选择了两个我觉得最可靠的应用它们.解码方法似乎非常强大,但编码方法虽然有效,但是在5年前发布了

我们仍然不愿意将其推出,因为可能存在看不见的边缘情况会导致这些方法中断.

最终,我正在寻找:

  • 打破下面方法的例子,或者
  • 确保这些方法已被用于生产并且不会破裂
  • 也许在生产中经过试验和测试的替代品?

先谢谢大家!

代码:

class Session extends BaseSession
{
    /**
     * Taken from http://www.php.net/manual/en/function.session-decode.php#108037
     */
    public function unserialized() {
        $session_data = $this->content;
        $method = ini_get("session.serialize_handler");
        switch ($method) {
            case "php":
                return self::unserialize_php($session_data);
                break;
            case "php_binary":
                return self::unserialize_phpbinary($session_data);
                break;
            default:
                throw new Exception("Unsupported session.serialize_handler: " . $method . ". Supported: php, php_binary");
        }
    } …
Run Code Online (Sandbox Code Playgroud)

php session serialization deserialization

8
推荐指数
1
解决办法
1957
查看次数

Composer不为包生成.git文件夹

这很奇怪,看起来像我失踪的小东西.几天前,当我composer install获得自己的供应商目录时.git,这允许我进行更改并更新我自己的打包存储库.

今天,运行后composer install,.git每个包文件夹中的目录都丢失了!(我认为这可能与从缓存安装有关?)

有人可以尝试重新创建吗?

$ git clone https://github.com/nathankot/rbhpi
$ cd rbhpi
$ ./composer.phar install
$ cd vendor/rbhpi/core
$ ls -a
Run Code Online (Sandbox Code Playgroud)

从上面的命令,.git我缺少该目录.

我在文档中找不到这个规范,但我确实在这个faq项中找到了它:

安装后删除每个依赖项的.git目录

我问题的任何解决方案?

php composer-php

5
推荐指数
1
解决办法
3524
查看次数

从PHP exec()函数读取git push的输出

我正在为我的框架的命令行工具编写一个部署命令.它使用git进行部署.

我有一条线,我这样做:

exec("git push {$remote} {$branch}:{$branch}", $shell_output, $status);
Run Code Online (Sandbox Code Playgroud)

我想在内部输出$shell_output,但它没有发生(输出只显示在终端上).我认为因为git是一个外部程序,因此创建了一个新的输出流?

我试过使用这里描述的输出缓冲区无济于事.我确信有些东西可以解决这个问题,但是经过多次挖掘后却无法找到它.

所以任何帮助将不胜感激:)

php git bash operating-system

4
推荐指数
1
解决办法
997
查看次数

Swari 1.2中的Variadic @ autoclosure?

现在这@autoclosure是参数声明的一部分而不是类型,如何声明一个函数采用可变量的自动爆破?

之前:

public func coalesce<T>(all : @autoclosure () -> T? ...) -> T? {
    for f : () -> T? in all {
        if let x = f() { return x }
    }
    return nil
}
Run Code Online (Sandbox Code Playgroud)

之后:???

ios swift

4
推荐指数
1
解决办法
370
查看次数