关于ffmpeg实时解码视频流的问题

时间:2022-12-13 23:35:26
(1)
我想写一个应用程序实时解码视频文件并播放,该怎么得到avformatcontext的相关信息呢。

(2)
我看网上说ffplay.exe可以实时解码播放视频流,于是我想试试,我在优酷里随便找了一段视频,它的地下是:
http://player.youku.com/player.php/sid/XMjQ0ODQ3ODI0/v.swf

然后我在cmd里运行:
ffplay.exe http://player.youku.com/player.php/sid/XMjQ0ODQ3ODI0/v.swf
一点效果也没有,而我用一个本地文件file
ffplay.exe file
却可以正常播放
请问该怎么样才能看到ffplay.exe实时解码播放的效果?

(3)
看了这篇贴http://topic.csdn.net/u/20090114/20/A981D6D8-8E67-419F-94BD-C33827B3F8F5.html
有了一些启发,他的这个地址
rtsp://192.168.1.100/stream0
rtsp://192.168.1.100/test.avi
是怎么弄的呢?
怎么才能得到像他这样的地址?

10 个解决方案

#1


怎么就没人来指点一下,我就是想用ffmpeg的库写个实时播放网络视频的应用程序而已。播放本地文件思路是很清晰的,直接可以用av_open_input_file()来填充AVFormatContext体的一些信息,可网络视频流不知道该怎么做。

#2


该回复于2011-03-01 10:37:01被版主删除

#3


实时解码和文件解码是类似的。
都是获得一帧帧视频,然后送给解码器,解码成功了,再显示,
所以实时解码和文件解码不同之处在于获取视频的途径不一样。
文件解码获取是从文件来,实时解码获取视频帧是从网络中得到。

#4


谢谢AudioAEC的回复,
你说的太抽象了,这些我都知道,解码文件是用av_open_input_file()来获取,而解码网络呢?
可以说得具体些吗?

#5


怎么没人回答

#6


创建网络socker从网络上获取数据.
陆其明的<DirectShow开发指南>有网络接收的 SourceFilter的代码例子

#7


该回复于2011-05-23 10:45:34被版主删除

#8


该回复于2011-10-20 14:02:56被版主删除

#9


我也是刚学ffmpeg,你发贴得时候我还不知道ffmpeg是什么东西。现在做的是音视频的录制,这方面的做法是,首先你得知道从网络上接收到的数据包得格式,然后解析,解析之后,你还得知道里面的视频数据是什么编码格式,我这儿是H264,知道是什么编码格式之后,将数据解码成原始的视频帧(YUN42或者别的),得到原始的视频帧之后,因为我们做的是录制,所以还要编码然后写入文件。如果你是实时播放的话,就不用做这一步了。事实上ffmpeg应该是支持h264编码格式的视频播放的,所以从h264的解码这部分都应该能让ffmpeg来做。好吧!!这只是一个思路。具体实现我没做过,觉得不对,可以探讨,但请各位别喷!!!

#10


@wansbest,怎样将数据解码成原始的视频帧??

#1


怎么就没人来指点一下,我就是想用ffmpeg的库写个实时播放网络视频的应用程序而已。播放本地文件思路是很清晰的,直接可以用av_open_input_file()来填充AVFormatContext体的一些信息,可网络视频流不知道该怎么做。

#2


该回复于2011-03-01 10:37:01被版主删除

#3


实时解码和文件解码是类似的。
都是获得一帧帧视频,然后送给解码器,解码成功了,再显示,
所以实时解码和文件解码不同之处在于获取视频的途径不一样。
文件解码获取是从文件来,实时解码获取视频帧是从网络中得到。

#4


谢谢AudioAEC的回复,
你说的太抽象了,这些我都知道,解码文件是用av_open_input_file()来获取,而解码网络呢?
可以说得具体些吗?

#5


怎么没人回答

#6


创建网络socker从网络上获取数据.
陆其明的<DirectShow开发指南>有网络接收的 SourceFilter的代码例子

#7


该回复于2011-05-23 10:45:34被版主删除

#8


该回复于2011-10-20 14:02:56被版主删除

#9


我也是刚学ffmpeg,你发贴得时候我还不知道ffmpeg是什么东西。现在做的是音视频的录制,这方面的做法是,首先你得知道从网络上接收到的数据包得格式,然后解析,解析之后,你还得知道里面的视频数据是什么编码格式,我这儿是H264,知道是什么编码格式之后,将数据解码成原始的视频帧(YUN42或者别的),得到原始的视频帧之后,因为我们做的是录制,所以还要编码然后写入文件。如果你是实时播放的话,就不用做这一步了。事实上ffmpeg应该是支持h264编码格式的视频播放的,所以从h264的解码这部分都应该能让ffmpeg来做。好吧!!这只是一个思路。具体实现我没做过,觉得不对,可以探讨,但请各位别喷!!!

#10


@wansbest,怎样将数据解码成原始的视频帧??