Git Product home page Git Product logo

Comments (10)

zhangpeihao avatar zhangpeihao commented on June 2, 2024

服务器用的是哪个啊?

from gortmp.

xiangxixids avatar xiangxixids commented on June 2, 2024

内部搭建的服务器, rtmp://XXXXXX:1935/myapp/tt_friends?vhost=tt
或者你提供我一个能用的服务器地址, 我换你的地址测试一下?

from gortmp.

xiangxixids avatar xiangxixids commented on June 2, 2024

我找了个公共测试的地址: rtmp://live.hkstv.hk.lxdns.com/live/hks 这个一样有问题, 麻烦看一下呢.

from gortmp.

hy05190134 avatar hy05190134 commented on June 2, 2024

@xiangxixids ./rtmp_player -Stream="hks" -URL="rtmp://live.hkstv.hk.lxdns.com/live" -DumpFLV="ab.flv"
我本地测试可以拉到数据并写入 flv 文件

from gortmp.

programmerZhou avatar programmerZhou commented on June 2, 2024

我测试过程中也发现了,使用vlc播放,只能播放前面几帧,最后读出flv的每个tag,发现tag的时间戳都是一样的,跟踪代码发现demp/rtmp_player.go 文件的第53行和58行中的第二个参数应该填message.AbsoluteTimestamp而不是message.Timestamp。 下面这行代码是第53行的代码。

flvFile.WriteVideoTag(message.Buf.Bytes(), message.Timestamp)

from gortmp.

hy05190134 avatar hy05190134 commented on June 2, 2024

@programmerZhou flv 的时间戳是不是还需要调整的?直接可以用 absoluteTimestamp

from gortmp.

programmerZhou avatar programmerZhou commented on June 2, 2024

@hy05190134 是不是需要调整我没有仔细看实现代码,可能不调整会有一些不同步吧。但是使用absoluteTimestamp,保存下来的flv文件是可以被vlc播放的。 而使用timestamp(该字段可能存的是时间戳增量),在存成flv文件后会导致flv tag的时间戳错误,从而导致flv文件无法播放。下面是我打印的flv文件的tag header信息(使用timestamp)。
header timestamp is 231962, length of data is 4819, tag type is 9, tag data size is 4819
header timestamp is 231962, length of data is 521, tag type is 8, tag data size is 521
header timestamp is 231962, length of data is 689, tag type is 9, tag data size is 689
header timestamp is 231962, length of data is 525, tag type is 8, tag data size is 525
header timestamp is 231962, length of data is 2245, tag type is 9, tag data size is 2245
header timestamp is 231962, length of data is 548, tag type is 8, tag data size is 548
header timestamp is 231962, length of data is 11687, tag type is 9, tag data size is 11687
header timestamp is 231962, length of data is 516, tag type is 8, tag data size is 516
header timestamp is 231962, length of data is 5103, tag type is 9, tag data size is 5103
header timestamp is 231962, length of data is 534, tag type is 8, tag data size is 534
header timestamp is 231962, length of data is 864, tag type is 9, tag data size is 864
header timestamp is 231962, length of data is 2667, tag type is 9, tag data size is 2667
header timestamp is 231962, length of data is 523, tag type is 8, tag data size is 523
header timestamp is 231962, length of data is 12829, tag type is 9, tag data size is 12829
header timestamp is 231962, length of data is 554, tag type is 8, tag data size is 554
header timestamp is 231962, length of data is 5396, tag type is 9, tag data size is 5396
header timestamp is 231962, length of data is 519, tag type is 8, tag data size is 519
header timestamp is 231962, length of data is 896, tag type is 9, tag data size is 896
header timestamp is 231962, length of data is 524, tag type is 8, tag data size is 524
header timestamp is 231962, length of data is 3466, tag type is 9, tag data size is 3466
header timestamp is 231962, length of data is 528, tag type is 8, tag data size is 528
header timestamp is 231962, length of data is 12246, tag type is 9, tag data size is 12246
header timestamp is 231962, length of data is 529, tag type is 8, tag data size is 529
header timestamp is 231962, length of data is 5433, tag type is 9, tag data size is 5433
header timestamp is 231962, length of data is 2995, tag type is 9, tag data size is 2995
header timestamp is 231962, length of data is 525, tag type is 8, tag data size is 525
header timestamp is 231962, length of data is 2652, tag type is 9, tag data size is 2652
header timestamp is 231962, length of data is 521, tag type is 8, tag data size is 521
header timestamp is 231962, length of data is 9135, tag type is 9, tag data size is 9135
header timestamp is 231962, length of data is 527, tag type is 8, tag data size is 527
header timestamp is 231962, length of data is 717, tag type is 9, tag data size is 717
header timestamp is 231962, length of data is 527, tag type is 8, tag data size is 527
header timestamp is 231962, length of data is 2269, tag type is 9, tag data size is 2269
header timestamp is 231962, length of data is 524, tag type is 8, tag data size is 524

from gortmp.

programmerZhou avatar programmerZhou commented on June 2, 2024

@hy05190134 使用absoluteTimestamp的flv文件的tag header信息
header timestamp is 11793892, length of data is 657, tag type is 9, tag data size is 657
header timestamp is 11793932, length of data is 2231, tag type is 9, tag data size is 2231
header timestamp is 11793935, length of data is 508, tag type is 8, tag data size is 508
header timestamp is 11793972, length of data is 26845, tag type is 9, tag data size is 26845
header timestamp is 11793982, length of data is 509, tag type is 8, tag data size is 509
header timestamp is 11794012, length of data is 2936, tag type is 9, tag data size is 2936
header timestamp is 11794028, length of data is 506, tag type is 8, tag data size is 506
header timestamp is 11794052, length of data is 2893, tag type is 9, tag data size is 2893
header timestamp is 11794075, length of data is 512, tag type is 8, tag data size is 512
header timestamp is 11794092, length of data is 17302, tag type is 9, tag data size is 17302
header timestamp is 11794121, length of data is 507, tag type is 8, tag data size is 507
header timestamp is 11794132, length of data is 6076, tag type is 9, tag data size is 6076
header timestamp is 11794167, length of data is 507, tag type is 8, tag data size is 507
header timestamp is 11794172, length of data is 2778, tag type is 9, tag data size is 2778
header timestamp is 11794212, length of data is 3527, tag type is 9, tag data size is 3527
header timestamp is 11794214, length of data is 522, tag type is 8, tag data size is 522
header timestamp is 11794252, length of data is 4236, tag type is 9, tag data size is 4236
header timestamp is 11794260, length of data is 519, tag type is 8, tag data size is 519
header timestamp is 11794292, length of data is 5855, tag type is 9, tag data size is 5855
header timestamp is 11794307, length of data is 524, tag type is 8, tag data size is 524
header timestamp is 11794332, length of data is 14722, tag type is 9, tag data size is 14722
header timestamp is 11794353, length of data is 531, tag type is 8, tag data size is 531
header timestamp is 11794372, length of data is 4731, tag type is 9, tag data size is 4731
header timestamp is 11794400, length of data is 538, tag type is 8, tag data size is 538
header timestamp is 11794412, length of data is 3477, tag type is 9, tag data size is 3477
header timestamp is 11794446, length of data is 526, tag type is 8, tag data size is 526
header timestamp is 11794452, length of data is 3435, tag type is 9, tag data size is 3435
header timestamp is 11794492, length of data is 616, tag type is 9, tag data size is 616
header timestamp is 11794492, length of data is 526, tag type is 8, tag data size is 526
header timestamp is 11794532, length of data is 27032, tag type is 9, tag data size is 27032
header timestamp is 11794539, length of data is 503, tag type is 8, tag data size is 503
header timestamp is 11794572, length of data is 13235, tag type is 9, tag data size is 13235
header timestamp is 11794585, length of data is 575, tag type is 8, tag data size is 575
header timestamp is 11794612, length of data is 6524, tag type is 9, tag data size is 6524
header timestamp is 11794632, length of data is 528, tag type is 8, tag data size is 528
header timestamp is 11794652, length of data is 461, tag type is 9, tag data size is 461
header timestamp is 11794678, length of data is 511, tag type is 8, tag data size is 511
header timestamp is 11794692, length of data is 5311, tag type is 9, tag data size is 5311
header timestamp is 11794725, length of data is 517, tag type is 8, tag data size is 517
header timestamp is 11794732, length of data is 11095, tag type is 9, tag data size is 11095
header timestamp is 11794771, length of data is 557, tag type is 8, tag data size is 557

from gortmp.

programmerZhou avatar programmerZhou commented on June 2, 2024

@hy05190134 为什么使用timestamp会导致所有tag的时间戳相同的原因。

  1. github.com/zhangpeihao/goflv/flv.go文件中关于WriteTag的实现:
116 func (flvFile *File) WriteTag(data []byte, tagType byte, timestamp uint32) (err error) {
117     if timestamp < flvFile.lastTimestamp {
118         timestamp = flvFile.lastTimestamp
119     } else {   
  1. 在outboundconn.go文件的269行后插入打印语句,如下:
266 func (obConn *outboundConn) OnReceived(conn Conn, message *Message) {
267     stream, found := obConn.streams[message.StreamID]
268     if found {
269         if !stream.Received(message) {
270             fmt.Printf("message.Timestamp is %d, message.AbsoluteTimestamp is %d\n",
271                 message.Timestamp,
272                 message.AbsoluteTimestamp)
273             obConn.handler.OnReceived(conn, message)
274         }
275     } else {
276         obConn.handler.OnReceived(conn, message)
277     }
278 }   

终端输入log如下:

message.Timestamp is 0, message.AbsoluteTimestamp is 100108
message.Timestamp is 0, message.AbsoluteTimestamp is 100108
message.Timestamp is 0, message.AbsoluteTimestamp is 100108
message.Timestamp is 40, message.AbsoluteTimestamp is 100148
message.Timestamp is 40, message.AbsoluteTimestamp is 100188
message.Timestamp is 100141, message.AbsoluteTimestamp is 100141
message.Timestamp is 47, message.AbsoluteTimestamp is 100188
message.Timestamp is 40, message.AbsoluteTimestamp is 100228
message.Timestamp is 46, message.AbsoluteTimestamp is 100234
message.Timestamp is 40, message.AbsoluteTimestamp is 100268
message.Timestamp is 47, message.AbsoluteTimestamp is 100281
message.Timestamp is 40, message.AbsoluteTimestamp is 100308
message.Timestamp is 46, message.AbsoluteTimestamp is 100327
message.Timestamp is 40, message.AbsoluteTimestamp is 100348
message.Timestamp is 46, message.AbsoluteTimestamp is 100373
message.Timestamp is 40, message.AbsoluteTimestamp is 100388
message.Timestamp is 47, message.AbsoluteTimestamp is 100420
message.Timestamp is 40, message.AbsoluteTimestamp is 100428
message.Timestamp is 46, message.AbsoluteTimestamp is 100466
message.Timestamp is 40, message.AbsoluteTimestamp is 100468
message.Timestamp is 40, message.AbsoluteTimestamp is 100508
message.Timestamp is 47, message.AbsoluteTimestamp is 100513
message.Timestamp is 40, message.AbsoluteTimestamp is 100548
message.Timestamp is 46, message.AbsoluteTimestamp is 100559
message.Timestamp is 40, message.AbsoluteTimestamp is 100588     

由上面的1和2可以得到为什么使用timestamp会导致flv文件的tag header中的时间戳都一样了。
使用AbsoluteTimestamp是否可以直接用,会不会有不同步的问题,我有空仔细在阅读相关代码,给出确定结论。
注: github.com/zhangpeihao/goflv这个项目已经在github.com上找不到了。

from gortmp.

hy05190134 avatar hy05190134 commented on June 2, 2024

@programmerZhou 你给的分析很详细,不过我之前可能只是写入,没有测试 vlc 播放,有空再看看 flv 协议把

from gortmp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.