当前位置: 首页 > 知识库问答 >
问题:

ffmpeg与动态块级联

田阳泽
2023-03-14

用于concat的ffmpeg文档按以下方式列出
FFMPEG-f concat-i mylist.txt-c复制输出

我真的很想知道人们是如何使用上面的概念(我希望它是如何工作的)从移动设备发送视频块进行直播的

共有1个答案

澹台展鹏
2023-03-14

ffmpeg文档中有一个示例,该示例完全符合您的要求:https://trac.ffmpeg.org/wiki/concatenate

这是他们的例子:

#!/bin/bash

fn_concat_init() {
    echo "fn_concat_init"
    concat_pls=`mktemp -u -p . concat.XXXXXXXXXX.txt`
    concat_pls="${concat_pls#./}"
    echo "concat_pls=${concat_pls:?}"
    mkfifo "${concat_pls:?}"
    echo
}

fn_concat_feed() {
    echo "fn_concat_feed ${1:?}"
    {
        >&2 echo "removing ${concat_pls:?}"
        rm "${concat_pls:?}"
        concat_pls=
        >&2 fn_concat_init
        echo 'ffconcat version 1.0'
        echo "file '${1:?}'"
        echo "file '${concat_pls:?}'"
    } >"${concat_pls:?}"
    echo
}

fn_concat_end() {
    echo "fn_concat_end"
    {
        >&2 echo "removing ${concat_pls:?}"
        rm "${concat_pls:?}"
        # not writing header.
    } >"${concat_pls:?}"
    echo
}

fn_concat_init

echo "launching ffmpeg ... all.mkv"
timeout 60s ffmpeg -y -re -loglevel warning -i "${concat_pls:?}" -pix_fmt yuv422p all.mkv &

ffplaypid=$!

echo "generating some test data..."
i=0; for c in red yellow green blue; do
    ffmpeg -loglevel warning -y -f lavfi -i testsrc=s=720x576:r=12:d=4 -pix_fmt yuv422p -vf "drawbox=w=50:h=w:t=w:c=${c:?}" test$i.mkv
    fn_concat_feed test$i.mkv
    ((i++));
    echo
done
echo "done"

fn_concat_end

wait "${ffplaypid:?}"

echo "done encoding all.mkv"
 类似资料:
  • 我想把.html文件和.java文件放在同一个包中,放在/src/main/java下,但是在创建新的.html文件时,Eclipse提供/webapp作为默认文件夹。有没有办法改变这种行为?

  • 在传统桌面操作系统中,用户空间和内核空间是分开的,应用程序运行在用户空间,内核以及内核模块则运行于内核空间,其中内核模块可以动态加载与删除以扩展内核功能。dlmodule 则是 RT-Thread 下,在内核空间对外提供的动态模块加载机制的软件组件。在 RT-Thread v3.1.0 以前的版本中,这也称之为应用模块(Application Module),在 RT-Thread v3.1.0

  • 动态模块接口 结构体 struct   rt_dlmodule   动态模块控制块 更多...   类型定义 typedef void(*  rt_dlmodule_init_func_t) (struct rt_dlmodule *module)   动态模块初始化函数指针类型定义   typedef void(*  rt_dlmodule_cleanup_func_t) (struct rt_

  • 问题内容: 在我的数据库的多个地方,开发人员使用了动态sql而不是静态sql。他们说这是为了提高性能。有人可以告诉我动态sql是否真的可以提高存储过程或plsql块的性能吗? 哪个执行速度更快,为什么? 1。 2。 问题答案: 您的示例代码非常简单,几乎没有什么区别,但是在那种情况下,静态版本最有可能执行得更好。 使用动态SQL来提高性能的主要原因是,当SQL语句发生重大变化时- 例如,您可以根据

  • 问题内容: 作为块级元素的HTML元素和形成块格式上下文的HTML元素之间有什么区别? HTML元素既可以是块级元素又可以形成块格式化上下文吗? 作为块级元素是否意味着它形成了一个块格式化上下文,或者相反,形成一个块格式化上下文就意味着它必须是一个块级元素吗? 同样,这如何转换为内联元素和形成内联格式上下文的元素? 问题答案: 请注意,此答案使用术语“盒子”代替“元素”,因为CSS区分了元素和盒子

  • Seata 的动态降级需要结合配置中心的动态配置订阅功能。动态配置订阅,即通过配置中心监听订阅,根据需要读取已更新的缓存值,ZK、Apollo、Nacos 等第三方配置中心都有现成的监听器可实现动态刷新配置;动态降级,即通过动态更新指定配置参数值,使得 Seata 能够在运行过程中动态控制全局事务失效(目前只有 AT 模式有这个功能)。 那么 Seata 支持的多个配置中心是如何适配不同的动态配置