zoukankan      html  css  js  c++  java
  • 解决FFmpeg丢失视频流及帧率过高的问题

    转换参数

    -i  sourceVideo.wmv  -vcodec libx264 -preset ultrafast -profile:v baseline -acodec aac -strict experimental -s 640*480 -b 568k -ab 128k destinationVideo.mp4

    -vcodec libx264  采用H.264的编码方式

    -preset ultrafast  快速的编码方式

    -profile:v baseline  让视频提供最好的兼容方式,但会关闭很多高级特性

    -acodec aac  采用AAC音频编码

    -strict experimental

    -s 640*480  图片的大小

    -b 568k   视频码率

    -ab 128k  音频码率

    问题描述

    1、转换多视频流视频,其视频流信息丢失,输出视频只有音频信息。

    出错视频异常参数

    正常视频的正常参数

    出错视频描述

    导致的结果

    3 video streamsMPEG-4microsoft),

    3KbpsMPEG-4 VisualMicrosoft

    1 audio stream:WMA

    568Kbps,WMV1;

     

    只有音频

    视频信息丢失,不能播放视频

     

    2、总比特率模式为变量的视频,转换时间长,输出视频大,频率高(有时会导致转换程序中断,视频无法继续转换)。

    出错视频异常参数

    正常视频的正常参数

    出错视频描述

    导致的结果

    Overrall bit rate mode:Variable

     

    Overrall bit rate mode:Constant

    频率高,文件大(是原来的2-3倍)

    转换时间长,有的甚至出现“无法转换”。

     

     

    问题对策

    1、使用参数“ -map  0 ”,使得所有的流都参与到转换中去。

    解释:视频中一般包含视频流和音频流,并且可以有多个视频流,多个音频流。FFmpeg转换视频,默认情况下,其第一个视频流、第一个音频率参与转换,其他的忽略。上述的出错视频其第一个视频流的视频比特率只有3kb,其太小,转换时将其忽略。(个人解释,不具有权威性)

    2、使用参数“-r 25”,强制写入帧率,使得输出视频的帧率不过高(蹦到1000)。

    解释:可能视频的总比特率为变量,所以原视频的信息(比例帧率)未能写入到输出视频中去。

  • 相关阅读:
    EPPlus实战篇——Excel写入
    EPPlus实战篇——Excel读取
    Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统
    ElasticSearch+NLog+Elmah实现Asp.Net分布式日志管理
    C盘清理
    vs2017离线安装且安装包不占用C盘空间
    CommandLine exe参数
    Nuget 打包 for .Net Standart project
    Redis 应用:缓存
    Redis架构设计
  • 原文地址:https://www.cnblogs.com/yuanloo/p/4368426.html
Copyright © 2011-2022 走看看