我需要通过ffmpeg从Amazon S3上托管的视频创建海报帧.
那么有没有办法直接在ffmpeg命令行中使用远程视频文件,如下所示:
ffmpeg -i "http://bucket.s3.amazonaws.com/video.mp4" -ss 00:00:10 -vframes 1 -f image2 "image%03d.jpg"
ffmpeg只返回:
http://bucket.s3.amazonaws.com/video.mp4: I/O error occurred
Usually that means that input file is truncated and/or corrupted.
我也尝试强制ffmpeg使用视频mp4容器阅读:
ffmpeg -f mp4 -i "http://bucket.s3.amazonaws.com/video.mp4" ...
但没有运气.
从S3获取此视频并在本地处理它当然可以正常工作,
以及从其他"标准"http服务器远程读取文件.
所以我知道ffmpeg支持远程文件读取,但为什么不在S3上呢?
对于通过邮件发送的每个错误日志,我们都会收到另一封额外的电子邮件,其中包含 2 行 smtp 调试日志消息。
symfony new --demo)3.7.05.2.1// 5.2.9,5.3.0-RC1# config/packages/prod/monolog.yaml
monolog:
handlers:
main:
type: fingers_crossed
action_level: critical
handler: deduplicated
deduplicated:
type: deduplication
handler: symfony_mailer
symfony_mailer:
type: symfony_mailer
from_email: 'error@example.com'
to_email: 'error@example.com'
subject: 'An Error Occurred! %%message%%'
level: debug
Run Code Online (Sandbox Code Playgroud)
Monolog 按预期发送错误消息,但每封邮件后面都会跟着第二封包含以下内容的邮件:
[2021-05-26T10:49:47.683298+02:00] app.DEBUG: Email transport "Symfony\Component\Mailer\Transport\Smtp\SmtpTransport" stopping [] []
[2021-05-26T10:49:47.722980+02:00] app.DEBUG: Email transport "Symfony\Component\Mailer\Transport\Smtp\SmtpTransport" stopped [] []
Run Code Online (Sandbox Code Playgroud)
dev或test环境中没有额外的邮件test: true …我的侦听器是行为的一部分,应该删除任何被调用的select查询的where子句中的所有is_published检查.在子句中添加一个部分非常简单,但如何删除一个.
有一些函数Doctrine_Query->removeDqlQueryPart('where'),但是删除了完整的where子句,而我只需要'is_published = ?'删除部分.
但是,我可以用某种方式手动处理这个,使用正则表达式或其他东西.但棘手的部分是,如何删除'?'所代表的参数 来自相应的参数数组(可检索Doctrine_Query->getRawParams()).
所以我问,是否有一种简洁的方法来转换这种查询:
...FROM Video v WHERE v.is_published = ? AND v.start_date < ? AND v.end_date > ?
对于这个剥离的,没有弄乱问号代表的params:
...FROM Video v WHERE v.start_date < ? AND v.end_date > ?
这当然只是一个简单的例子,我的查询有点复杂.不幸的是,由于symfony框架,我坚持使用doctrine 1.0.x.
这是我的基本/父实体,设置所以它的子节点使用自己的表.
/**
* @ORM\Entity
* @ORM\Table(name="layer_object")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"service"="Service", "aircraft"="Aircraft", ...})
*/
class LayerObject {}
飞机实体.一个表现不错的简单孩子
/** * @ORM\Entity * @ORM\Table(name="aircraft") */ class Aircraft extends LayerObject
服务实体.一个复杂的子节点,它本身就是使用单表继承.
/**
* @ORM\Entity
* @ORM\Table(name="service")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"ground"="Ground", "onboard"="Onboard"})
*/
class Service extends LayerObject {}
服务实体的子女
/**
* @ORM\Entity
*/
class Ground extends Service {}
app/console doctrine:schema:validate发现没有错误但app/console doctrine:schema:update --force只是不会生成'service'表,应该使用单表继承.似乎简单地忽略了服务实体定义.
当然我可以手动为这个表创建SQL,但是应用程序会增长,在某些时候我将需要使用迁移.
任何人都可以指向某个方向吗?谢谢.
发现重复,但到目前为止还没有答案,请参阅:Doctrine 2多级继承
编辑:
当我为第二级使用类表继承时(@ORM\InheritanceType("JOINED")对于Service实体),它工作得很好.请参阅: …
single-table-inheritance class-table-inheritance symfony doctrine-orm symfony-2.3
我想向大多数字段添加样式表类属性,但不是全部。
公共函数 buildForm(FormBuilder $builder, array $options)
{
$builder
->add('name_short', null, ['attr' => ['class' => 'rtl']] )
->添加('name_long')
->添加('个人资料教育')
->添加('个人资料工作')
->添加('个人资料政治')
->添加('推特')
->添加('脸书')
->添加('网站')
;
}
['attr' => ['class' => 'rtl']]有没有比向每个字段添加属性更简单的方法?寻找类似循环字段并在将字段添加到构建器后设置属性的内容。
感谢您的指点。
我已将 monolog 配置为通过电子邮件发送错误,如 symfony 文档中所述: https: //symfony.com/doc/4.3/logging/monolog_email.html
适用于处理请求期间发生的所有错误以及控制台命令错误。但它不会针对处理消息期间发生的错误发送电子邮件。
运行消费者时会显示错误bin/console messenger:consume async -vv,它们也会显示在 prod.log 中,如下所示:
[2020-01-10 12:52:38] messenger.CRITICAL: Error thrown while handling message...
感谢您提供有关如何设置独白以通过电子邮件发送信使错误的任何提示。