zoukankan      html  css  js  c++  java
  • ffmpeg开发出现的问题(四) ftp/rstp/ts 流输出

              之于使用ffmpeg完成流的输入和流的输出. 之前一直以为困难重重, 做好看协议的打算了.阅读源码方晓新版的ffmepg支持流的输入和流的输出.现在测试通过了. 实现的仅仅是最简单的ftp流输入/转码/ftp流输出. 并且效果和本地的文件一样,速度亦不相上下.实在是值得记录的大事之一.

           网上关于流的输入或者输出,都是怎么实现协议和封装般的长篇累牍. 资料更是寥若星辰, 针对不同的应用, 亦是五花八门. 让初学者望而生畏. 所谓解决方法只是表象, 源码才是王道. 现将调试问题记录之, 以飨来者

    1. 流的输入和输出, 路径, 端口, 用户名, 密码, 权限. 这些是开发之前最基本的问题. 针对ftp问题, 之前忘记了写权限, 默认搭建的服务器是只读的, 这个花费了很长时间

    2. 用到的函数av_guess_format("ftp", NULL, NULL); 发现这个函数无用, 被包含在avio_open()函数中, 调用这个函数,返回的是空,导致后面操作段错误

    3. AVFormatContext *cc=avformat_alloc_context();如果用这个函数来分配容器,对应里面好多数据都是空的.应该用avformat_alloc_output_context(); 看这个函数的源码发现,里面更严谨,更可靠

    4.开发步骤:

    ~ 先本地完成读入文件/转码/写入文件

       这一步在ffmpeg的/doc/example中有好多已经实现,不过每个程序对应的只是里面其中的一个步骤 , 要做的工作是, 根据需求, 把这些功能组合起来

    ~ 添加读入文件, 改成流的形势, 这个只要搭好环境就行了

    ~ 写入文件, 这步就得写好各个配置了. 最主要的是avio_open函数, 看下源码, 赋值, 调试到这一步后, 看ftp服务器有没有检测到连接. 否则是你这边出问题了



    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    docker安装nginx
    docker安装tomcat&部署javaweb程序
    linux/work
    Go语言入门篇-gRPC基于golang & java简单实现
    Go语言入门篇-jwt(json web token)权限验证
    Go语言入门篇-JSON&http调用
    Go语言入门篇-基本流程控制
    Go语言入门篇-基本类型排序和 slice 排序
    Go语言入门篇-高级数据类型
    Go语言入门篇-基本数据类型
  • 原文地址:https://www.cnblogs.com/vintion/p/4117045.html
Copyright © 2011-2022 走看看