如何重新创建MP4文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何重新创建MP4文件相关的知识,希望对你有一定的参考价值。
我正在尝试替换在相对受限的环境中播放的MP4文件,因此我尝试创建一个尽可能接近当前视频文件的视频文件,以确保它能够正常工作。 ffprobe
有这个:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2016-12-07T20:39:51.000000Z
encoder : HandBrake 0.9.9 2013051800
Duration: 00:00:11.01, start: 0.000000, bitrate: 4789 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1080x1920 [SAR 1:1 DAR 9:16], 4648 kb/s, 24 fps, 24 tbr, 90k tbn, 180k tbc (default)
我不知道如何指定mp42
和mp42isomavc1
。其余我有一些想法:-vf
支持setsar
和setdar
,-pix_fmt yuv420p
,-framerate 24
。
答案
假设您从视频输入开始并且分辨率无关紧要,请使用
ffmpeg -i source -vf setsar=1,format=yuv420p -r 24
-c:v libx264 -profile:v main -video_track_timescale 90k
-color_primaries 1 -color_trc 1 -colorspace 1 -color_range 1
-brand mp42 -movflags +faststart out.mp4
FFmpeg不允许手动设置minor_version
。编码时,编码器将选择编解码器时基tbc
,不建议手动设置它。颜色属性设置为与给定输入匹配,但如果您的源具有不同的属性而您没有使用过滤器转换它们,则这些属性将为false。当然,您的解码器可能会忽略这些容器级别标志并仅检查比特流。
如果输入帧速率不是24,则ffmpeg将丢弃/复制帧以满足输出速率。除非您的输入具有播放器不支持的帧速率,否则最好跳过-r
选项。
以上是关于如何重新创建MP4文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在不下载整个片段的情况下使用媒体源缓冲区和分段 mp4 在特定时间启动视频?