mp4与ffmpeg

mp4

利用MP4Box.js可以查看mp4文件的信息。

mp4文件由很多box组成,box的类型非常多,但大多都是可选的,mp4根目录必选的有3个box组成:

box是可以嵌套的,moov中又嵌套了很多box:

trak又由下列box组成:

mdia又由下列box组成:

image

在mvhd中保存了两个重要信息:

总时长 = duration/timescale

每秒图片数(fps) = sample_count/总时长

视频大小相关的参数

因为音频的体积较小,相对视频可以忽略,所以影响视频文件大小主要来自视频。视频其实就是连续播放图片,当每秒播放超过24幅图片时(24fps),由于人眼的视觉暂留效果,所以看起来视频是连续的。所以从原理上我们可以推测出视频大小与下面几个因素有关:

ffmpeg

查看文件信息:

ffprobe 1.mov

转换成 mp4 格式

ffmpeg -i 1.mov -vcodec copy -acodec copy temp.mp4

wmv格式转换成 mp4 格式

ffmpeg -i input.wmv -c:v libx264 -crf 23 -c:a aac -q:a 100 output.mp4

批量wmv转mp4

for file in ./*.flv; do ffmpeg -i $file -c:v libx264 -crf 23 -c:a aac -q:a 100 $file.mp4;done

降低帧率

ffmpeg -i temp.mp4 -r 24 out.mp4 

裁剪视频

ffmpeg -ss 00:00:00 -t 00:00:30 -i 1.mp4 -vcodec copy -acodec copy out.mp4

合并文件

ffmpeg -f concat -i filelist.txt -c copy output.mp4

其中filelist.txt内容如下

file '1.mp4'
file '2.mp4'
file '3.mp4'

批量转换格式

for file in ./*.flv; do ffmpeg -i $file -vcodec copy -acodec copy $file.mp4;done

rtmp推流

ffmpeg -re  -stream_loop -1 -i test.mp4 -vcodec copy -acodec copy -f flv -y rtmp://camera-fivecakes.oss-cn-beijing-internal.aliyuncs.com/live/test_channel

Mac电脑

对于矢量字体来说,像素点越多,字体显示越细腻,曲线更加顺滑,但是增加像素会让字体更小。Mac用4个物理像素显示原本一个物理像素,即实际的物理像素长和宽都变为原来的2倍,这样做在增加矢量字体细腻的同时不改变字体大小。

对于非矢量的图片和视频来说,像素点和真实的物理像素点逐一对应,但是设置图片和录屏尺寸的时候,是逻辑像素的尺寸,即宽高都是真实像素的一半。

期望将视频的宽高比为16:9,录制时设置1024×576,输出的视频尺寸为2048 × 1152。

posted @ 2021-06-22 21:03:18
评论加载中...
发表评论