我有一个通过Wowza录制实时流的系统。我从Wowza那里得到了一个带有记录的.flv文件。问题是,5分钟文件接近50mb大。但是当我看一些你可以从网上下载的电视剧时,它们是 20 分钟,在 mp4 中,就像 150mb 一样大。无论什么。。。看,流输入是这样的:
Input #0, flv, from 'rtmp://127.0.0.1/stream/test.stream':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0.0: Video: h264 (Constrained Baseline), yuv420p, 720x404 [PAR 1:1 DAR 180:101], 25 tbr, 1k tbn, 50 tbc
Stream #0.1: Audio: aac, 48000 Hz, stereo, s16
FFmpeg 在"会话"上向我展示了这样的东西:
frame= 2721 fps= 27 q=-1.0 Lsize= 17188kB time=111.21 bitrate=1266.1kbits/s
你知道如何使用 FFmpeg 转换 .MP4 中的 FLV 文件同样接近质量但文件大小更小?
顺便说一句,我在Linux^^操作
谢谢
这是基于使用最新ffmpeg的linux mashine
。使用以下代码并仅更改 -crf 值,您可以创建各种视频剪辑大小。数字越小质量越高。
最终视频与所有现代设备/服务兼容,如本机网络播放器,iOS设备,安卓设备,微软设备,ps3,xbox等。
ffmpeg
-y //overwrite the file if it exists
-i INPUTFILE // replace with the input file
-metadata title=THETITLE // set a nice title, visible on modern devices
-metadata date=THEDATE // set a nice title, visible on modern devices
-c:v libx264 // use the h264 codec
-crf 21 // try different numbers between 18-26
-preset veryslow // placebo,slow,fast,ultrafast==big file
-tune film // tune it a little
-pix_fmt yuv420p // preferred on most modern devices
-profile:v main // preferred on most modern devices
-level 3.1 // preferred on most modern devices
-refs 4 // preferred on most modern devices
-c:a libfdk_aac // use aac
-metadata:s:a language=eng // set a language, visible on modern devices
-b:a 128k // audio bitrate 128k is like mp3 192k
-ar 48000 // 44100 ... whatever
-ac 2 // audiochannels
-movflags +faststart //move the metadata in the front of the video so it loads faster
OUTPUTFILE