live555+ffmpeg 如何处理h264流?

请问live555的是怎么实现的,比如testProgs中的openRTSP是经过source(rtsp://localhost/test.mp4)之后将video或者audio的数据存储到文件中,再进行解码吗,是如何解码呢,我想用ffmpeg解码,如何实现呢?

问题点数:20分

CSDN推荐

CSDN今日推荐

hpywho

Bbs1

0 2009-05-15 07:26:23

引用 ・ 举报 ・ 管理 #1 得分:0

是问题没有难度还是什么啊,小弟刚来这里注册,希望各位帮忙啊....

rightorwrong

Bbs1 版主

Blank Blank

0 2009-05-15 12:36:21

引用 ・ 举报 ・ 管理 #2 得分:0

live没有解码,只是接收网路数据。接收的地方也就是写文件的地方在filesink文件里
可以从filesink写文件的地方直接取数据用ffmpeg来解码
ffmpeg怎么用你看看它自己的Demo程序

hpywho

Bbs1

0 2009-05-15 12:56:23

引用 ・ 举报 ・ 管理 #3 得分:0

我把filesink中得到的数据文件,用ffmpeg解码后,老是出错啊.我觉得,是不是在解码之前,需要对数据文件做些其他处理,然后解码吧?

video-H264-1.h264是openRTSP保存得到的文件,只加了个后缀.h264.然后用如下命令转换,但是出错.

D:\ffmpegdev\ffmpeg3.2sdk\bin>ffmpeg -i video-H264-1.h264 -vcodec wmv2 -y test.wmv
[h264 @ 65E8EAC0]non existing PPS referenced
[h264 @ 65E8EAC0]decode_slice_header error
[h264 @ 65E8EAC0]non existing PPS referenced
[h264 @ 65E8EAC0]decode_slice_header error
[h264 @ 65E8EAC0]no frame!
[h264 @ 65E8EAC0]non existing PPS referenced
[h264 @ 65E8EAC0]decode_slice_header error
[h264 @ 65E8EAC0]non existing PPS referenced
[h264 @ 65E8EAC0]decode_slice_header error
[h264 @ 65E8EAC0]no frame!
Input #0, h264, from 'video-H264-1.h264':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 25.00 tb(r)
Output #0, asf, to 'test.wmv':
    Stream #0.0: Video: wmv2, yuv420p, q=2-31, 200 kb/s, 25.00 tb(c)
Stream mapping:
  Stream #0.0 -> #0.0
[asf @ 69945930]dimensions not set
Could not write header for output file #0 (incorrect codec parameters ?)

D:\ffmpegdev\ffmpeg3.2sdk\bin>

hpywho

Bbs1

0 2009-05-16 10:52:42

引用 ・ 举报 ・ 管理 #4 得分:0

请高手回答啊,琢磨了好久,搞不定,非常谢谢啊.

用openRTSP测试程序,我把filesink中得到的数据文件(是h264视频流数据),原封不动,用ffmpeg解码后,老是出错啊.我觉得,是不是在解码之前,需要对数据文件做些其他处理,然后解码吧? 对其他的流,比如mpeg4视频流,可以把得到的文件直接用ffmpeg解码,解码正常.h264数据流就不行,是不是h264数据流,要进行必要的处理后,才能解码呢??? 
如下: 
video-H264-1.h264是openRTSP保存得到的文件,只加了个后缀.h264.然后用如下命令转换,但是出错. 

D:\ffmpegdev\ffmpeg3.2sdk\bin>ffmpeg -i video-H264-1.h264 -vcodec wmv2 -y test.wmv 
[h264 @ 65E8EAC0]non existing PPS referenced 
[h264 @ 65E8EAC0]decode_slice_header error 
[h264 @ 65E8EAC0]non existing PPS referenced 
[h264 @ 65E8EAC0]decode_slice_header error 
[h264 @ 65E8EAC0]no frame! 
[h264 @ 65E8EAC0]non existing PPS referenced 
[h264 @ 65E8EAC0]decode_slice_header error 
[h264 @ 65E8EAC0]non existing PPS referenced 
[h264 @ 65E8EAC0]decode_slice_header error 
[h264 @ 65E8EAC0]no frame! 
Input #0, h264, from 'video-H264-1.h264': 
  Duration: N/A, bitrate: N/A 
    Stream #0.0: Video: h264, yuv420p, 25.00 tb(r) 
Output #0, asf, to 'test.wmv': 
    Stream #0.0: Video: wmv2, yuv420p, q=2-31, 200 kb/s, 25.00 tb(c) 
Stream mapping: 
  Stream #0.0 -> #0.0 
[asf @ 69945930]dimensions not set 
Could not write header for output file #0 (incorrect codec parameters ?) 

D:\ffmpegdev\ffmpeg3.2sdk\bin> 

宝庆狂人

Bbs1

0 2009-06-18 21:32:05

引用 ・ 举报 ・ 管理 #5 得分:0

Live555开发研究,欢迎加入QQ群:55905994

lius1984

Bbs1

0 2009-06-21 21:38:47

引用 ・ 举报 ・ 管理 #6 得分:0

mpeg4打包 很简单,一个udp包就是一帧,  而h.264一个nalu可能有好几个UDP包,filesink需要把相同timestamp的包拼成一个完整的nalu再给解码器。 另外,h264需要用SDP里的SPS,PPS来初始化解码器

raylin

Bbs1

0 2009-06-26 15:32:31

引用 ・ 举报 ・ 管理 #7 得分:0

顶一下,楼主的问题解决了没?

sherryking1984

Bbs1

0 2009-07-13 13:50:56

引用 ・ 举报 ・ 管理 #8 得分:0

支持一下,我也很想知道live555是怎么实现传输的呢?

edoxs

Bbs1

0 2009-08-19 23:08:36

引用 ・ 举报 ・ 管理 #9 得分:0

刚开始用openRTSP测试程序,请问一下如何写文件参数如何用的,如果我是看一个实时的视频,输出到文件怎么控制时间呢,比如说我只希望录制5分钟???命令行该如何写!!!openRTSP -q -F aaa rtsp://******************.sdp这样对吗,好像程序一直在那执行

小菜_默

Bbs1

0 2010-01-07 16:09:24

引用 ・ 举报 ・ 管理 #10 得分:0

LZ 我也想知道怎么解决啊,你完成了吗?

coloriy

Bbs1

0 2010-07-28 09:36:08

引用 ・ 举报 ・ 管理 #11 得分:0

占座,学习

Ruined

Bbs1

0 2010-07-29 21:58:10

引用 ・ 举报 ・ 管理 #12 得分:0

如果是音频和视频数据放在一起,自己写一个splitter,音频和视频首帧addstream到formater中,并初始化解码器,对不同的stream调用不同的process进行解码就可以了。
如果是各自数据分开的,创建两个线程读取保存的数据调用对应的解码process就可以了,需要同步。当然如果在server中播发的数据流同步过的最好,省了麻烦。
此外音频和视频不同的格式需要对编码的sdp信息解码用来初始化解码器。不知道会不会对你有所帮助

embed_guo

Bbs1

0 2010-09-15 17:52:06

引用 ・ 举报 ・ 管理 #14 得分:0

顶一下,楼主的问题解决了没?

sysustar

Bbs1

1 2010-09-16 20:28:00

引用 ・ 举报 ・ 管理 #15 得分:0

正在研究streaming,学习学习

coloriy

Bbs1

0 2010-12-20 16:54:40

引用 ・ 举报 ・ 管理 #16 得分:0

http://www.yanfaw.com/b2b/technology/151.html

fixdot

Bbs1

1 2010-12-20 17:02:21

引用 ・ 举报 ・ 管理 #17 得分:0

偶实现了live555+ffmpeg+sdl显示,需要的q我:一一五六九九四二八一

zxc110110

Bbs1

0 2011-10-13 09:40:37

引用 ・ 举报 ・ 管理 #18 得分:0

引用 16 楼 coloriy 的回复:

http://www.yanfaw.com/b2b/technology/151.html



能不能给我留个联系方式 ,我有点基础的问题,刚搞这个   

我是新手  我想问下 live555得到的流数据怎么传给递给ffmpge?(最好是用代码来解释下 谢谢)

第2 我在这源代码里边看到很多 sink  source  还有环境什么的 能不能给我通俗的解释?
我是这样理解的  Source,Sink以及 Filter等概念。Sink就是消费数据的对象,比如把接收到的数据存储到文件,这个文件就是一个Sink。 Source就是生产数据的对象,比如通过 RTP读取数据。数据流经过多个'source'和'sink's
按我的理解是 先接到流 给source 然后取出数据 给sink?  不知道对不

wzt226

Bbs1

0 2011-10-13 11:27:48

引用 ・ 举报 ・ 管理 #19 得分:0

关注一下,我估计也快遇到这样的问题了.

hua_zhixing_

Bbs1

0 2011-10-20 11:43:55

引用 ・ 举报 ・ 管理 #20 得分:0

引用 19 楼 wzt226 的回复:

关注一下,我估计也快遇到这样的问题了.



已经遇到了,通过live555得到了h264的裸码流,但不知道怎么交给ffmpeg处理啊!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值