linux pps 包 网卡,64位Ubuntu Linux 下安装和使用PPS网络电视的详细步骤

亲自测试在Ubuntu 10.10下安装好了pps,详情请见这里 Ubuntu Linux下安装和使用PPS详细步骤及解决无声的问题,包括解决无声的问题,不过那是在32 位的Ubuntu Linux 10.10,装好后很完美,下面就再谈64位Ubuntu Linux 下安装和使用PPS网络电视的详细步骤,先把pps网络电视给安装了再说,免得Windows下的朋友说Linux下没有好用的网络电视软件。这就为你讲讲64位Ubuntu Linux 下安装和使用PPS网络电视的详细步骤。先来看图说话(见图1)。

编后记:刚发完此文不久,合作伙伴对我说有个流氓要我们写上他们的链接,说这是他们的文章,我看了他们的文章,全部是抄袭别人的,而且这个解决方法网上早就有了,我们只是安装测试写了点感受,现在配上图。本来也没什么值得辩驳的,但是看到这个流氓到处发贴污蔑,还是声明下。

babd192ff42acf1dd46a7ace28dd7b08.png

图1

1. 和32位安装一样,得先安装依赖包,如果对这些包不了解,请查看这里 查看一下具体的依赖包(见图2):

sudo apt-get install libqt4-core libqt4-dbus libqt4-gui libqt4-network libqt4-webkit libqt4-xml libfuse2 mplayer

9f47803a4dc9ad92fa3475785b161dfd.png

图2

注意:这是一行

2. 下载并安装lib32qtwebkit4,下载地址这里。

下载完后通过终端切换到下载目录输入命令:

sudo dpkg -i lib32qtwebkit4_2.0.0~0ubuntu1-2_amd64.deb

3. 到launchpad下载PPS包并安装,下载地址这里。

sudo  dpkg -i ppstream_1.0.0-3_amd64.deb

安装之后当然还得要做一件事,就是解决有图像没声音的诟病了,这个在上一篇pps中又讲过不过还是再说说:

打开安装好的PPStream,在“工具”-》“选项”-》选择音频设备,默认是oss ,将其改成alsa,然后重启PPS。(见图3)

27cbd86d5caf97c1ab933341051fea04.png

图3

再试试看看怎么样?

怎么样,现在的PPS应该在Ubuntu Linux上流畅的运行了吧?想必这会你已经在欣赏着电视剧的精彩了!0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用GStreamer API提取H.264的SPS和PPS信息,需要使用h264parse元素来解析H.264码流,并从中提取SPS和PPS。以下是使用GStreamer API提取H.264中的SPS和PPS信息的示例代码: ```c #include <gst/gst.h> int main(int argc, char *argv[]) { GstElement *pipeline, *h264parse; GstCaps *caps; GstBuffer *sps_buf, *pps_buf; GstMapInfo map_info; gboolean ret; /* Initialize GStreamer */ gst_init(&argc, &argv); /* Create the elements */ pipeline = gst_pipeline_new("mypipeline"); h264parse = gst_element_factory_make("h264parse", "myh264parse"); /* Set the caps for h264parse element */ caps = gst_caps_new_simple("video/x-h264", "stream-format", G_TYPE_STRING, "byte-stream", NULL); g_object_set(G_OBJECT(h264parse), "caps", caps, NULL); gst_caps_unref(caps); /* Add h264parse element to the pipeline */ gst_bin_add(GST_BIN(pipeline), h264parse); /* Link the elements */ if (!gst_element_link_many(h264parse, NULL)) { g_printerr("Failed to link elements\n"); return -1; } /* Start the pipeline */ gst_element_set_state(pipeline, GST_STATE_PLAYING); /* Wait for the SPS and PPS buffers to be emitted */ ret = gst_element_get_state(h264parse, NULL, NULL, GST_CLOCK_TIME_NONE); if (ret != GST_STATE_CHANGE_SUCCESS) { g_printerr("Failed to get state of h264parse element\n"); return -1; } ret = gst_element_query_position(h264parse, GST_FORMAT_TIME, NULL); if (ret != TRUE) { g_printerr("Failed to query position of h264parse element\n"); return -1; } ret = gst_element_query_duration(h264parse, GST_FORMAT_TIME, NULL); if (ret != TRUE) { g_printerr("Failed to query duration of h264parse element\n"); return -1; } ret = gst_element_query_latency(h264parse, GST_FORMAT_TIME, NULL, NULL); if (ret != TRUE) { g_printerr("Failed to query latency of h264parse element\n"); return -1; } gst_element_send_event(h264parse, gst_event_new_seek(1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_NONE, 0, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)); ret = gst_element_get_state(h264parse, NULL, NULL, GST_CLOCK_TIME_NONE); if (ret != GST_STATE_CHANGE_SUCCESS) { g_printerr("Failed to get state of h264parse element\n"); return -1; } sps_buf = gst_buffer_new(); pps_buf = gst_buffer_new(); ret = gst_element_query_convert(h264parse, GST_FORMAT_TIME, GST_FORMAT_BUFFER, GST_SECOND, &sps_buf); if (ret != TRUE) { g_printerr("Failed to query convert SPS buffer\n"); return -1; } ret = gst_element_query_convert(h264parse, GST_FORMAT_TIME, GST_FORMAT_BUFFER, 2 * GST_SECOND, &pps_buf); if (ret != TRUE) { g_printerr("Failed to query convert PPS buffer\n"); return -1; } /* Extract the SPS and PPS data */ gst_buffer_map(sps_buf, &map_info, GST_MAP_READ); /* map_info.data contains SPS data */ gst_buffer_unmap(sps_buf, &map_info); gst_buffer_map(pps_buf, &map_info, GST_MAP_READ); /* map_info.data contains PPS data */ gst_buffer_unmap(pps_buf, &map_info); /* Stop and cleanup the pipeline */ gst_element_set_state(pipeline, GST_STATE_NULL); gst_object_unref(pipeline); return 0; } ``` 在上述代码中,我们创建了一个GStreamer管道,其中含了h264parse元素。我们设置了h264parse的caps,然后将h264parse元素添加到管道中,并启动了管道。 我们使用gst_element_send_event()来发送一个seek事件,让h264parse元素从H.264码流中提取SPS和PPS信息。我们使用gst_element_query_convert()来获取SPS和PPS的缓冲区,并使用gst_buffer_map()和gst_buffer_unmap()来提取SPS和PPS数据。 请注意,在实际使用中,你需要根据需要修改代码,并添加适当的错误处理和释放资源的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值