门户网站设计说明网站开发后的经验总结

当前位置: 首页 > news >正文

门户网站设计说明,网站开发后的经验总结,郴州网页设计招聘,wordpress 写入权限设置FFPlay是以FFmpeg框架为基础#xff0c;外加渲染音视频的库libSDL构建的媒体文件播放器。 ffplay工具下载并播放视频#xff0c;可以辅助卡看流信息。 官网下载地址#xff1a;http://ffmpeg.org/download.html#build-windows 下载build好的exe程序#xff1a; 此处下载…FFPlay是以FFmpeg框架为基础外加渲染音视频的库libSDL构建的媒体文件播放器。 ffplay工具下载并播放视频可以辅助卡看流信息。 官网下载地址http://ffmpeg.org/download.html#build-windows 下载build好的exe程序 此处下载的是ffmpeg-20200403-52523b6-win64-static.zip 下载后解压ffplay.exe就在文件夹bin中 1 FFPlay 打开命令窗口进入ffplay.exe的目录中或者把bin添加到环境变量 命令参考:https://www.cnblogs.com/renhui/p/8458802.html 格式ffplay [选项] [‘输入文件’] 参考以上链接说明 1.1 播放视频 ffplay http://mp4.res.xxxx.com/mediafiles/wiad_creative/532/1469975702.mp4 可以本地也可以网络流。
播放网络流 ffplay rtsp://xxxxxxxxxxxx进行播放 1.2 播放音频 播放mp3 ffplay shy.mp3 播放pcm ffplay -ar 44100 -ac 1 -f s16le -i xxx.pcm 各个参数 -ar 表示采样率 -ac 表示音频通道数 单声道是 1Android 中为 AudioFormat.CHANNEL_IN_MONO 双声道是 2Android 中为 AudioFormat.CHANNEL_IN_STEREO -f 表示 pcm 格式sample_fmts le(小端)或者 be(大端) sample_fmts可以通过ffplay -sample_fmts来查询 -i 表示输入文件这里就是 pcm 文件 1.3 播放日志等级设置 loglevel参数控制 ffplay -loglevel trace http://mp4.res.xxx.com/mediafiles/wiad_creative/532/1469975702.mp4 想要更详细看到日志可以看到请求头和网络包 对应源码定义类型 每个级别定义的数值代表了严重程度数值越小代表越严重。 默认的级别是AV_LOG_INFO。 此外还有一个级别不输出任何信息即AV_LOG_QUIET 1.4 ffplay音画同步 ffplay也是一个视频播放器所以不得不提出来的一个问题是音画同步。ffplay的音画同步的实现方式其实有三种分别是以音频为主时间轴作为同步源以视频为主时间轴作为同步源以外部时钟为主时间轴作为同步源。 首先需要说明的是播放器接收到的视频帧或者音频帧内部都是会有时间戳PTS时钟来标识它实际应该在什么时刻展示实际的对齐策略如下 比较视频当前的播放时间和音频当前的播放时间如果视频播放过快则通过加大延迟或者重复播放来降低视频播放速度如果视频播放满了则通过减小延迟或者丢帧来追赶音频播放的时间点。 关键就在于音视频时间的比较和延迟的计算当前在比较的过程中会设置一个阈值如果超过预设的阈值就应该作出调整丢帧或者重复渲染这就是整个对齐策略。 在使用ffplay的时候我们可以明确的指定使用那种对齐方式比如 ffplay pm.mp4 -sync audio 上面这个命令显式的指定了使用以音频为基准进行音视频同步的方式播放视频文件当然这也是ffplay的默认播放设置。 ffplay pm.mp4 -sync video 上面这个命令显式的指定了使用以视频为基准进行音视频同步的方式播放视频文件。 ffplay pm.mp4 -sync ext 上面这个命令显式的指定了使用外部时钟为基准进行音视频同步的方式播放视频文件 2 FFMpeg命令 主要是视频流转换输出用 命令格式 ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件] ffmpeg [[options][-i’ input_file]]… {[options] output_file}… 1、参数选项 (1) -an: 去掉音频 (2) -acodec: 音频选项 一般后面加copy表示拷贝 (3) -vcodec:视频选项一般后面加copy表示拷贝 2、格式 (1) h264: 表示输出的是h264的视频裸流 (2) mp4: 表示输出的是mp4的视频 (3)mpegts: 表示ts视频流 2.1 转流 H264视频转ts视频流 ffmpeg -i test.h264 -vcodec copy -f mpegts test.ts H264视频转mp4 ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4 ts视频转mp4 ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 test.mp4 mp4视频转flv ffmpeg -i test.mp4 -acodec copy -vcodec copy -f flv test.flv 2.2 转音频 转MP3为wav ffmpeg -i input.mp3 -acodec pcm_s16le -ac 2 -ar 44100 output.wav m4a为wav ffmpeg -i input.m4a -acodec pcm_s16le -ac 2 -ar 44100 output.wav wav与PCM的相互转换 ffmpeg -i input.wav -f s16le -ar 44100 -acodec pcm_s16le output.raw PCM转wav ffmpeg -f s16le -ar 44100 -ac 2 -acodec pcm_s16le -i input.raw output.wav ffmpeg -i ad.m4a -ar 48000 -ac 2 -f s16le ad_48000_2_s16le.pcm ffmpeg -i ad.m4a -ar 48000 -ac 2 -f s16le ad_48000_2_s16le.pcm aac to ac3: ffmpeg -i audio.aac -acodec ac3 audio.ac3 ffmpeg -i input.wav -acodec ac3 output.ac3 提取左右声道的视频 ffmpeg -i ad.mp4 -af “panstereo|c1FR” -y ad-right.mp4 ffmpeg -i ad.mp4 -af “panstereo|c0FL” -y d-left.mp44 2.3 拉流 网络流转本地文件 ffmpeg -i http://www.xxx.com/xxx.m3u8 name.mp4 ffmpeg强制使用TCP方式处理rtsp流 输出都cc.ts ffmpeg -rtsp_transport tcp -i rtsp://182.131.121.48:12059/CMSBK/0021.ts cc.ts 2.4 推流 本机推流UDP封装的MPEG-TS ffmpeg -re -i sintel.ts -f mpegts udp://127.0.0.1:8880 ffmpeg -stream_loop 3 -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -f mpegts udp://172.31.10.9:8880 本机推流首先经过RTP封装然后经过UDP封装的MPEG-TS ffmpeg -re -i sintel.ts -f rtp_mpegts udp://127.0.0.1:8880 ffmpeg -stream_loop 3 -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -f rtp_mpegts udp://172.31.10.9:8880 本地推流RTP协议流视频流 ffmpeg -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -c:v copy -an -f rtp_mpegts rtp://172.31.10.9:8881 本地推流RTP协议流音频流 ffmpeg -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -vn -acodec copy -f rtp_mpegts rtp://172.31.10.9:8881 本地推流RTP协议流音视频流 参考https://www.codenong.com/cs106467422/ ffmpeg -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -c:v copy -an -f rtp_mpegts rtp://172.31.10.9:8881 -vn -acodec copy -f rtp rtp://172.31.10.9:8882 2.3 抽帧 每隔10秒抽帧 ffmpeg -skip_frame nokey -i D:\videos\jljt_hevc_aac_60fps.ts -vf select‘not(mod(floor(t-start_t),10))gt(t-start_t,selected_n*10)’,scale128:72,tile8x8 -an -vsync 0 keyframes%03d.png 每隔5秒抽帧 ffmpeg -skip_frame nokey -i http://xxxx.m3u8 -vf select‘(isnan(prev_selected_t)gte(t-prev_selected_t,5))(not(mod(floor(t-start_t),10))gt(floor(t-start_t),selected_n10))’,scale400:200,tile6x6 -an -vsync 0 vod_new/test3_1/%d.jpg 2.5 图像转换 图片转yuv ffmpeg -i C:\Users\Administrator\Desktop\screenshot1.png -s 1920x1080 -pix_fmt yuvj420p C:\Users\Administrator\Desktop\screenshot1.yuv yuv转JPG ffmpeg -pix_fmt yuvj420p -s 1920x1080 -i C:\Users\Administrator\Desktop\screenshot1.yuv C:\Users\Administrator\Desktop\b.jpg 2.6 编码 YUV编码H264 ffmpeg -s 1920x1080 -i src01_1920x1080.yuv -b:v 7776k -r 25 -vcodec libx264 -x264opts ssim src01_1920x1080_0.150.h264 YUV编码mpg ffmpeg -s 1920x1080 -i src01_1920x1080.yuv -b:v 7776k -r 25 -vcodec mpeg2video src01_1920x1080_0.150.mpg 2.7 MP4转H264 ffmpeg -i D:\zhibo\video\douyin.mp4 -vcodec copy -bsf h264_mp4toannexb -f h264 douyin.h264 说明 -i douyin.mp4 :是输入的MP4文件 -vcodec copy从MP4封装中进行拷贝 -bsf h264_mp4toannexb从MP4拷贝到annexB封装 -f h264采用h.264格式 douyin输出的文件名称 ffmpeg.exe -i http://mobaliyun.res.mgxx.com/new_video/2022/05/10/1295/60DF4C8228F500CE5584E23968DE2739_20220510_1_1_1241.mp4?sftcvnds1_vtp4 -vcodec copy -bsf h264_mp4toannexb -f h264 douyin.h264 H264转Mp4 ffmpeg -i test.264 -vcodec copy -f mp4 test.mp4 2.8 H264 转YUV ffmpeg -i src01_1920x1080_0.150.h264 src01_1920x1080_0.150_264.yuv ffmpeg -i src01_1920x1080_0.150.mpg src01_1920x1080_0.150_mpg2.yuv 2.9 图片和yuv 转换 ffmpeg -s 1280x720 -pix_fmt yuv420p -i yuv420p_1280x720.yuv -pix_fmt rgb24 rgb24_1280x720.rgb ffplay -pixel_format rbg24 -video_size 1280x720 -i rgb24_1280x720.rgb ffmpeg -i a.jpg -s 640x480 -pix_fmt yuv422p a.yuv ffmpeg -pix_fmt yuv422p -s 640x480 -i a.yuv b.jpg 3 推流 3.1 打包成HLS点播流 ffmpeg -i ad.mp4 -c:v libx264 -c:a copy -f hls m3u8\ad.m3u8 打包后的流放到服务器即可访问 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:4 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:1.920000, ad1.ts #EXTINF:3.680000, ad2.ts #EXTINF:2.560000, ad3.ts #EXTINF:1.800000, ad4.ts #EXTINF:1.680000, ad5.ts #EXT-X-ENDLIST-segment_time每隔十秒切一个文件 ffmpeg -i dnf.mp4 -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list video/index.m3u8 -segment_time 10 video/%03d.ts 4 获取帧信息 ffprobe -show_frames We_Are_Young.mp4 frames.info 统计I帧数量 keyframe1 : key frame pict_typeI : I-frame cat frames.info | grep “pict_typeI” |wc -l 统计视频帧数量 cat frames.info | grep “media_typevideo” |wc -l ffprobe -show_format -show_streams filename