赞
踩
对音视频一直有初步的了解,深入理解ffmpeg这本书出来后就迫不及待大代价购买,先通读一遍,简单对其做笔记,下一步做细节整理练习(仅个人笔记)。
音频,图像,声道,视频,带宽计算等基础。
AVFormat(封装,解封装),
AVCodec(编码,解码模块),
AVFilter(滤镜模块),
AVDevices(设备模块),
AVUtils(通用工具模块)
swscale(图像转换模块)
swresample(音频转换模块)
ffmpeg编译后生成三个工具,ffmpeg(编解码工具),ffplay(播放器),ffprobe(多媒体分析器)
安装:可以去官网直接下载可执行程序,也可以去源码安装(整理过,这里略过)
源码安装的方式,可以通过configure查看支持的模块,配置支持的模块,查看编解码,封装/解封装,通信协议 支持等
E:\ffmpeg\ffmpeg-2023-11-09-git-acf63d5350-full_build\bin>ffmpeg -version
ffmpeg version 2023-11-09-git-acf63d5350-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 58. 32.100 / 58. 32.100
libavcodec 60. 33.100 / 60. 33.100
libavformat 60. 17.100 / 60. 17.100
libavdevice 60. 4.100 / 60. 4.100
libavfilter 9. 13.100 / 9. 13.100
libswscale 7. 6.100 / 7. 6.100
libswresample 4. 13.100 / 4. 13.100
libpostproc 57. 4.100 / 57. 4.100
E:\ffmpeg\ffmpeg-2023-11-09-git-acf63d5350-full_build\bin>ffmpeg -h filter=colorkey ffmpeg version 2023-11-09-git-acf63d5350-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers built with gcc 12.2.0 (Rev10, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint libavutil 58. 32.100 / 58. 32.100 libavcodec 60. 33.100 / 60. 33.100 libavformat 60. 17.100 / 60. 17.100 libavdevice 60. 4.100 / 60. 4.100 libavfilter 9. 13.100 / 9. 13.100 libswscale 7. 6.100 / 7. 6.100 libswresample 4. 13.100 / 4. 13.100 libpostproc 57. 4.100 / 57. 4.100 Filter colorkey Turns a certain color into transparency. Operates on RGB colors. slice threading supported Inputs: #0: default (video) Outputs: #0: default (video) colorkey AVOptions: color <color> ..FV.....T. set the colorkey key color (default "black") similarity <float> ..FV.....T. set the colorkey similarity value (from 1e-05 to 1) (default 0.01) blend <float> ..FV.....T. set the colorkey key blend value (from 0 to 1) (default 0) This filter has support for timeline through the 'enable' option
E:\ffmpeg\ffmpeg-2023-11-09-git-acf63d5350-full_build\bin>ffmpeg -h muxer=flv ffmpeg version 2023-11-09-git-acf63d5350-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers built with gcc 12.2.0 (Rev10, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint libavutil 58. 32.100 / 58. 32.100 libavcodec 60. 33.100 / 60. 33.100 libavformat 60. 17.100 / 60. 17.100 libavdevice 60. 4.100 / 60. 4.100 libavfilter 9. 13.100 / 9. 13.100 libswscale 7. 6.100 / 7. 6.100 libswresample 4. 13.100 / 4. 13.100 libpostproc 57. 4.100 / 57. 4.100 Muxer flv [FLV (Flash Video)]: Common extensions: flv. Mime type: video/x-flv. Default video codec: flv1. Default audio codec: mp3. flv muxer AVOptions: -flvflags <flags> E.......... FLV muxer flags (default 0) aac_seq_header_detect E.......... Put AAC sequence header based on stream data no_sequence_end E.......... disable sequence end for FLV no_metadata E.......... disable metadata for FLV no_duration_filesize E.......... disable duration and filesize zero value metadata for FLV add_keyframe_index E.......... Add keyframe index metadata
ffmpeg -i xxx.rmvb -vcodec mpeg4 -b:v 200k -r 15 -an output.mp4
9是输出的详细程度 最详细 0~9 查看容器信息 流信息 章节信息 以及json格式 # ffprobe.exe -v 9 -show_format -show_streams -show_chapters -of json test.mp4 { "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10", "profile": "Constrained Baseline", "codec_type": "video", "codec_tag_string": "avc1", "codec_tag": "0x31637661", "width": 1920, "height": 1080, "coded_width": 1920, "coded_height": 1080, "closed_captions": 0, "film_grain": 0, "has_b_frames": 0, "pix_fmt": "yuv420p", "level": 40, "chroma_location": "left", "field_order": "progressive", "refs": 1, "is_avc": "true", "nal_length_size": "4", "id": "0x1", "r_frame_rate": "10/1", "avg_frame_rate": "329055/32963", "time_base": "1/10240", "start_pts": 0, "start_time": "0.000000", "duration_ts": 67508224, "duration": "6592.600000", "bit_rate": "558453", "bits_per_raw_sample": "8", "nb_frames": "65811", "extradata_size": 39, "disposition": { "default": 1, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "non_diegetic": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 }, "tags": { "language": "und", "handler_name": "VideoHandler", "vendor_id": "[0][0][0][0]" } }, { "index": 1, "codec_name": "aac", "codec_long_name": "AAC (Advanced Audio Coding)", "profile": "LC", "codec_type": "audio", "codec_tag_string": "mp4a", "codec_tag": "0x6134706d", "sample_fmt": "fltp", "sample_rate": "48000", "channels": 2, "channel_layout": "stereo", "bits_per_sample": 0, "initial_padding": 0, "id": "0x2", "r_frame_rate": "0/0", "avg_frame_rate": "0/0", "time_base": "1/48000", "start_pts": 0, "start_time": "0.000000", "duration_ts": 316453680, "duration": "6592.785000", "bit_rate": "128000", "nb_frames": "309038", "extradata_size": 2, "disposition": { "default": 1, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "non_diegetic": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 }, "tags": { "language": "und", "handler_name": "SoundHandler", "vendor_id": "[0][0][0][0]" } } ], "chapters": [ ], "format": { "filename": "test.mp4", "nb_streams": 2, "nb_programs": 0, "format_name": "mov,mp4,m4a,3gp,3g2,mj2", "format_long_name": "QuickTime / MOV", "start_time": "0.000000", "duration": "6592.785000", "size": "568219326", "bit_rate": "689504", "probe_score": 100, "tags": { "major_brand": "isom", "minor_version": "512", "compatible_brands": "isomiso2avc1mp41", "title": "EVCapture4.0.2杞欢褰曞埗", "encoder": "Lavf56.38.102", "comment": "鏈棰戠敱婀栧崡涓€鍞俊鎭鎶€寮€鍙戠殑EV褰曞睆杞欢褰曞埗锛寃ww.ieway.cn" } } }
E:\ffmpeg\ffmpeg-2023-11-09-git-acf63d5350-full_build\bin>ffprobe.exe -show_data -show_packets test.mp4 ffprobe version 2023-11-09-git-acf63d5350-full_build-www.gyan.dev Copyright (c) 2007-2023 the FFmpeg developers built with gcc 12.2.0 (Rev10, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint libavutil 58. 32.100 / 58. 32.100 libavcodec 60. 33.100 / 60. 33.100 libavformat 60. 17.100 / 60. 17.100 libavdevice 60. 4.100 / 60. 4.100 libavfilter 9. 13.100 / 9. 13.100 libswscale 7. 6.100 / 7. 6.100 libswresample 4. 13.100 / 4. 13.100 libpostproc 57. 4.100 / 57. 4.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : EVCapture4.0.2软件录制 encoder : Lavf56.38.102 comment : 本视频由湖南一唯信息科技开发的EV录屏软件录制,www.ieway.cn Duration: 01:49:52.79, start: 0.000000, bitrate: 689 kb/s Stream #0:0[0x1](und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 558 kb/s, 9.98 fps, 10 tbr, 10240 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] [PACKET] codec_type=audio stream_index=1 pts=-1241 pts_time=-0.025854 dts=-1241 dts_time=-0.025854 duration=1024 duration_time=0.021333 size=341 pos=48 flags=KD_ data= 00000000: 2120 0520 a41b ffc0 0000 0000 0000 0000 ! . ............ 00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
[FORMAT] filename=test.mp4 nb_streams=2 nb_programs=0 format_name=mov,mp4,m4a,3gp,3g2,mj2 format_long_name=QuickTime / MOV start_time=0.000000 duration=6592.785000 size=568219326 bit_rate=689504 probe_score=100 TAG:major_brand=isom TAG:minor_version=512 TAG:compatible_brands=isomiso2avc1mp41 TAG:title=EVCapture4.0.2软件录制 TAG:encoder=Lavf56.38.102 TAG:comment=本视频由湖南一唯信息科技开发的EV录屏软件录制,www.ieway.cn [/FORMAT]
可以查看帧类型,索引,关键帧,pts,dts,时长,宽高等
[FRAME] media_type=audio stream_index=1 key_frame=1 pts=0 pts_time=0.000000 pkt_dts=0 pkt_dts_time=0.000000 best_effort_timestamp=0 best_effort_timestamp_time=0.000000 pkt_duration=807 pkt_duration_time=0.016813 duration=807 duration_time=0.016813 pkt_pos=389 pkt_size=512 sample_fmt=fltp nb_samples=807 channels=2 channel_layout=stereo [/FRAME] [FRAME] media_type=video stream_index=0 key_frame=1 pts=0 pts_time=0.000000 pkt_dts=0 pkt_dts_time=0.000000 best_effort_timestamp=0 best_effort_timestamp_time=0.000000 pkt_duration=1024 pkt_duration_time=0.100000 duration=1024 duration_time=0.100000 pkt_pos=901 pkt_size=142879 width=1920 height=1080 crop_top=0 crop_bottom=0 crop_left=0 crop_right=0 pix_fmt=yuv420p sample_aspect_ratio=N/A pict_type=I coded_picture_number=0 display_picture_number=0 interlaced_frame=0 top_field_first=0 repeat_pict=0 color_range=unknown color_space=unknown color_primaries=unknown color_transfer=unknown chroma_location=left [SIDE_DATA] side_data_type=H.26[45] User Data Unregistered SEI message [/SIDE_DATA] [/FRAME]
可以设置xml,ini,json,cvs,flat等
-select_streams 可以查看音频 a 视频 v 字幕 a 的帧信息
配合进行过滤参数,显示必要的信息。 配合grep 可以过滤查看关键帧等信息,索引等
未验证,查看对应的moov位置,ffmpeg也可以
指定解码器
指定播放的视频流,音频流
b帧 p帧预测
实际上就是len +type +data的格式,然后内部嵌套
moov可能在最后,对录制,很大的视频挑战比较大。
把MP4格式下的moov字段中的一些信息放到了moof中。
区分mp4和fmp4的方式,通过mvex box是否存在确定吗?
一般每个Gop作为一个单独分片存储,基于关键帧的分片。 指令如下:
ffmpeg -i xxx.h264 -c:v copy -f mp4 -movflags frag_keyframe+empty_moov out.mp4
可扩展的格式,用于打包分段媒体对象,在自适应媒体流中在终端用户设备上传输和解码。
结合了HLS和dash 两种流媒体协议。
Elecard StreamEye , MP4Box, mp4info, mediainfo,l-smash, Bento4
vlc也可以?
Demuxer mov,mp4,m4a,3gp,3g2,mj2 [QuickTime / MOV]: Common extensions: mov,mp4,m4a,3gp,3g2,mj2,psp,m4b,ism,ismv,isma,f4v,avif. mov,mp4,m4a,3gp,3g2,mj2 AVOptions: -use_absolute_path <boolean> .D.V....... allow using absolute path when opening alias, this is a possible security issue (default false) -seek_streams_individually <boolean> .D.V....... Seek each stream individually to the closest point (default true) -ignore_editlist <boolean> .D.V....... Ignore the edit list atom. (default false) -advanced_editlist <boolean> .D.V....... Modify the AVIndex according to the editlists. Use this option to decode in the order specified by the edits. (default true) -ignore_chapters <boolean> .D.V....... (default false) -use_mfra_for <int> .D.V....... use mfra for fragment timestamps (from -1 to 2) (default auto) auto -1 .D.V....... auto dts 1 .D.V....... dts pts 2 .D.V....... pts -use_tfdt <boolean> .D.V....... use tfdt for fragment timestamps (default true) -export_all <boolean> .D.V....... Export unrecognized metadata entries (default false) -export_xmp <boolean> .D.V....... Export full XMP metadata (default false) -activation_bytes <binary> .D......... Secret bytes for Audible AAX files -audible_key <binary> .D......... AES-128 Key for Audible AAXC files -audible_iv <binary> .D......... AES-128 IV for Audible AAXC files -audible_fixed_key <binary> .D......... Fixed key used for handling Audible AAX files -decryption_key <binary> .D......... The media decryption key (hex) -enable_drefs <boolean> .D.V....... Enable external track support. (default false) -max_stts_delta <int> .D......... treat offsets above this value as invalid (from 0 to UINT32_MAX) (default 4294487295) -interleaved_read <boolean> .D......... Interleave packets from multiple tracks at demuxer level (default true)
mov/mp4/tgp/psp/tg2/ipod/ismv/f4v muxer AVOptions: -movflags <flags> E.......... MOV muxer flags (default 0) rtphint E.......... Add RTP hint tracks empty_moov E.......... Make the initial moov atom empty frag_keyframe E.......... Fragment at video keyframes frag_every_frame E.......... Fragment at every frame separate_moof E.......... Write separate moof/mdat atoms for each track frag_custom E.......... Flush fragments on caller requests isml E.......... Create a live smooth streaming feed (for pushing to a publishing point) faststart E.......... Run a second pass to put the index (moov atom) at the beginning of the file omit_tfhd_offset E.......... Omit the base data offset in tfhd atoms disable_chpl E.......... Disable Nero chapter atom default_base_moof E.......... Set the default-base-is-moof flag in tfhd atoms dash E.......... Write DASH compatible fragmented MP4 cmaf E.......... Write CMAF compatible fragmented MP4 frag_discont E.......... Signal that the next fragment is discontinuous from earlier ones delay_moov E.......... Delay writing the initial moov until the first fragment is cut, or until the first fragment flush global_sidx E.......... Write a global sidx index at the start of the file skip_sidx E.......... Skip writing of sidx atom write_colr E.......... Write colr atom even if the color info is unspecified (Experimental, may be renamed or changed, do not use from scripts) prefer_icc E.......... If writing colr atom prioritise usage of ICC profile if it exists in stream packet side data write_gama E.......... Write deprecated gama atom use_metadata_tags E.......... Use mdta atom for metadata. skip_trailer E.......... Skip writing the mfra/tfra/mfro trailer for fragmented files negative_cts_offsets E.......... Use negative CTS offsets (reducing the need for edit lists) -moov_size <int> E.......... maximum moov size so it can be placed at the begin (from 0 to INT_MAX) (default 0) -rtpflags <flags> E.......... RTP muxer flags (default 0) latm E.......... Use MP4A-LATM packetization instead of MPEG4-GENERIC for AAC rfc2190 E.......... Use RFC 2190 packetization instead of RFC 4629 for H.263 skip_rtcp E.......... Don't send RTCP sender reports h264_mode0 E.......... Use mode 0 for H.264 in RTP send_bye E.......... Send RTCP BYE packets when finishing -skip_iods <boolean> E.......... Skip writing iods atom. (default true) -iods_audio_profile <int> E.......... iods audio profile atom. (from -1 to 255) (default -1) -iods_video_profile <int> E.......... iods video profile atom. (from -1 to 255) (default -1) -frag_duration <int> E.......... Maximum fragment duration (from 0 to INT_MAX) (default 0) -min_frag_duration <int> E.......... Minimum fragment duration (from 0 to INT_MAX) (default 0) -frag_size <int> E.......... Maximum fragment size (from 0 to INT_MAX) (default 0) -ism_lookahead <int> E.......... Number of lookahead entries for ISM files (from 0 to 255) (default 0) -video_track_timescale <int> E.......... set timescale of all video tracks (from 0 to INT_MAX) (default 0) -brand <string> E.......... Override major brand -use_editlist <boolean> E.......... use edit list (default auto) -fragment_index <int> E.......... Fragment number of the next fragment (from 1 to INT_MAX) (default 1) -mov_gamma <float> E.......... gamma value for gama atom (from 0 to 10) (default 0) -frag_interleave <int> E.......... Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) (from 0 to INT_MAX) (default 0) -encryption_scheme <string> E.......... Configures the encryption scheme, allowed values are none, cenc-aes-ctr -encryption_key <binary> E.......... The media encryption key (hex) -encryption_kid <binary> E.......... The media encryption key identifier (hex) -use_stream_ids_as_track_ids <boolean> E.......... use stream ids as track ids (default false) -write_btrt <boolean> E.......... force or disable writing btrt (default auto) -write_tmcd <boolean> E.......... force or disable writing tmcd (default auto) -write_prft <int> E.......... Write producer reference time box with specified time source (from 0 to 2) (default 0) wallclock 1 E.......... pts 2 E.......... -empty_hdlr_name <boolean> E.......... write zero-length name string in hdlr atoms within mdia and minf atoms (default false) -movie_timescale <int> E.......... set movie timescale (from 1 to INT_MAX) (default 1000)
移动moov到mdat前面
dash格式的mp4文件
isml设置ISML直播流
ffmpeg -i xxx.mp4 -c:v libx265 -c:a aac -crf 25 -tag:v hvcl out.mp4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。