小编Rem*_*emi的帖子

如何在Golang中迭代JSON数组?

我试图解码一个JSON数组并将其放在一个结构的片中.我已经阅读了如何执行此操作,但前提是JSON数组包含键.我的JSON数组不包含键.

我已经将程序剥离到只处理JSON数据的部分.它编译,可以在下面找到.

package main

// 2014-04-19

import (
    "fmt"
    "encoding/json"
)

type itemdata struct {
    data1 int // I have tried making these strings
    data2 int
    data3 int
}

func main() {
    datas := []itemdata{}

    json.Unmarshal([]byte(`[["7293","1434","99646"],["4657","1051","23795"]]`), &datas)
    // I have tried the JSON string without the qoutes around the numbers
    fmt.Println(len(datas)) // This prints '2'
    fmt.Println("This prints") // This does print 
    for i := range datas {
        fmt.Println(datas[i].data1)  // This prints '0', two times 
    }
    fmt.Println("And so does this") // …
Run Code Online (Sandbox Code Playgroud)

json go

11
推荐指数
1
解决办法
2万
查看次数

如何让ffmpeg在rtmp输入流结束时退出?

我正在使用 ffmpeg 对来自本地 nginx rtmp 服务器的流进行转码,并将转码后的媒体发送回同一本地 rtmp 服务器。当流离线时,ffmpeg 保持活动状态。当流再次开始时,ffmpeg 会接手转码工作。

我希望 ffmpeg 在输入 rtmp 流停止时退出,但我找不到配置它来执行此操作。我浏览了手册页和在线文档。

为了完整起见,这些是我当前向 ffmpeg 提供的参数:

ffmpeg -i 'rtmp://localhost/live/ijsbeer' -s '1280x720' -vcodec 'libx264' -preset 'veryfast' -crf '25' -maxrate '2000k' -bufsize '1000.0k' -force_key_frames '0: 00:02' -max_mushing_queue_size '4096' -acodec '复制' -copyts -copytb '0' -f 'flv' 'rtmp://localhost/live/ijsbeer_720p'

让 ffmpeg 退出本身解决了我的两个问题。首先,当流式传输到 rtmp 服务器的编码器(OBS)重新启动时,ffmpeg 有时会遇到非单调的 DTS 问题。其次,我想实现一个基本的监控系统来通知我转码器中的问题。当输入流停止时使 ffmpeg 退出似乎是确定 ffmpeg 是否正在工作的最可靠方法。解析 stderr/stdout 并不可靠,因为没有明确的输出格式。

转码时我收到这些常规 stderr 行:

帧= 241 fps= 30 q=30.0 大小= 38kB 时间=00:00:09.74 比特率= 32.0kbits/s 速度= 1.2x

当我停止源流时会暂停。没有日志输出表明源流已退出。

ffmpeg rtmp

7
推荐指数
0
解决办法
502
查看次数

标签 统计

ffmpeg ×1

go ×1

json ×1

rtmp ×1