• 用ffmpeg对视频转码,视频格式转换


    查看 flv文件音频和视频的编码格式    ffmpeg -i 069.flv
    
    返回的最后几行
    Input #0, flv, from '069.flv':
      Duration: 00:32:28.50, start: 0.000000, bitrate: 2848 kb/s
      Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 64 kb/s
      Stream #0:1: Video: flv1, yuv420p, 1280x720, 2903 kb/s, 30 fps, 30 tbr, 1k tbn
    At least one output file must be specified
    
    音频Audio 是 44100 Hz 的 mp3
    视频Video 编码格式 yuv420p 分辨率 1280x720 
    
    由于 mp4 的视频编码一般为 h264 , 需要对视频进行重新编码,而不是单纯的拷贝。
    (flv1, yuv420p, 1280x720 (flv) -> h264 (libx264))
    
    ffmpeg -i 069.flv -vcodec libx264 -acodec copy output.mp4
    ffmpeg -i 069.flv -vcodec libx264 -acodec libmp3lame output.mp4
    ffmpeg -i 069.flv -c:a copy output.mp4
    
    音频比特率 -ab 128k  或者 -b:a 128k      -ar '44100' 
    视频比特率/码率           -b:v 1020k     -s  '1280x720'
    
    
    如果FLV文件的编码分别为H.264和AAC,仅需拷贝即可
    ffmpeg -i 069.flv -vcodec copy -acodec copy output.mp4
    
    也可以 ffmpeg 自动识别重新编码转换
    ffmpeg -i 069.flv output.mp4
    
    
    视频比特率×视频持续时间(秒)÷ 8 = 视频文件大小
    
    https://www.freeconvert.com/flv-to-mp4/download
    https://cloudconvert.com/flv-to-mp4
    
    格式工厂
    http://formatfactory.cn
    http://www.pcfreetime.com/formatfactory/CN/index.html
    
       狸窝
    
    ===========================================
    https://stackoverflow.com/questions/3255674/convert-audio-files-to-mp3-using-ffmpeg
    
    
    ffmpeg -i input.wav -vn -ar 44100 -ac 2 -b:a 192k output.mp3
    
    此示例中使用的参数说明:
    
    -i - 输入文件
    
    -vn - 禁用视频,以确保在源为视频文件时不包含视频(包括专辑封面图片)
    
    -ar- 设置音频采样频率。对于输出流,它默认设置为相应输入流的频率。对于输入流,此选项仅对音频抓取设备和原始解复用器有意义,并映射到相应的解复用器选项。
    
    -ac- 设置音频通道数。对于输出流,它默认设置为输入音频通道的数量。对于输入流,此选项仅对音频抓取设备和原始解复用器有意义,并映射到相应的解复用器选项。所以在这里用来确保它是立体声(2 声道)
    
    -b:a - 将音频比特率转换为每秒 192kbit
    
    ===========================================
    
    如果是单个文件,就用如下命令:
    
    ffmpeg -i "069.flv" -c copy "output.mp4"
    
    将这里的input改为你的文件名,output改为你想得到的文件名即可。
    
    如果是整个文件夹中的所有flv文件需要批量转成mp4,那么使用以下命令:
    
    for %i in (*.flv) do ffmpeg -i "%i" -c copy "%~ni.mp4"
    
    注:新生成的mp4文件会沿用原文件名。
    
    知乎 https://www.zhihu.com/question/65224766/answer/252226264
    
    ===========================================
    
    在使用ffmpeg转码的过程中,由于我的flv文件使用的视频编码是h264,音频是aac,所以转码的过程中flv->mp4,仅仅是容器改变了,编码方式几乎没有变化
    
    ffmpeg -i input.flv output.mp4
    
    此过程需要对视频进行重新编码,耗费资源和cpu较为严重,因为我的视频编码和音频编码都为h264 aac,这里就不需要对视频进行重新编码,仅仅需要对文件重新加以MP4容器即可
    
    所以使用的代码为:
    
    ffmpeg -i input.flv -vcodec copy -acodec copy output.mp4
    
    能够解决大部分计算资源,速度等同于拷贝文件。这里提到主要是大部分的网站都没有提到这个事情,希望能够给需要的人有所帮助。
    
    稀土掘金 作者:ArlenFuCN  https://juejin.cn/post/6844903757503807495
    

      

  • 相关阅读:
    东芝开发板驱动OLED模块显示LOGO图片
    东芝MCU实现位带操作
    使用系统定时器SysTick实现精确延时微秒和毫秒函数
    VC++调试错误的解决方案
    #pragma once与 #ifndef的区别
    strcmp()字符串比较函数用法
    C、C++中的static和extern关键字
    error LNK1169 找到一个或多个多重定义的符号的解决方法
    vs2013编译obs源码
    Qt线程—QThread的使用--run和movetoThread的用法
  • 原文地址:https://www.cnblogs.com/yisuo/p/15858588.html
Copyright © 2020-2023  润新知