摘要:主要原理是使用鏈接。是中解析視頻,并把內容畫在畫布上。目前發現的不足無法播放聲音,只能播放視頻。視頻文件只支持格式的視頻目前版本支持視頻格式,似乎是不支持了,官方建議用來轉格式。
主要原理是使用 jsmpeg(Github鏈接) 。
jsmpeg是js中解析mpeg視頻,并把內容畫在畫布上。
這篇文章是記錄jsmpeg怎么用的。
目前發現jsmpeg的不足無法播放聲音,只能播放視頻。(2018年更新,官方已解決該問題)
在蘋果和性能低的安卓中卡頓嚴重(iPhone7有略微卡頓,部分2016年安卓旗艦機不卡,現在終于相信有安卓能秒蘋果了)
目前(2018年)版本使用ts格式的視頻,相同質量的視頻大小差不多是mp4的兩倍,太占流量了
缺少許多事件
解決不足用audio播放
無法解決,我本來想自己開啟webgl,結果看到jsmpeg就是用的webgl,就是說他自己已經解決過了的。隨著大家手機的升級,已經不卡了
也無法解決,只能在體積和可操作性上做取舍了
我自己增加了幾個事件:https://gitee.com/haua/jsmpeg...
視頻源 直播流jsmpeg支持直播流,但是我還沒研究,所以只是先提一下,先不深入。
視頻文件jsmpeg只支持mpeg格式的視頻(目前2018版本支持ts視頻格式,似乎是不支持mpeg了?),jsmpeg官方建議用ffmpeg來轉格式。ffmpeg下載地址
從把視頻轉成mpg格式(轉出的視頻無音頻,且應該是支持從許多種格式轉過來的,我暫時只試過從mp4轉)
./ffmpeg -i video.mp4 -f mpeg1video -vf "crop=iw-mod(iw,2):ih-mod(ih,2)" -b 0 video.mpg
從視頻中提取音頻(上面說過jsmpeg不能播聲音,所以聲音要多帶帶弄出來)
./ffmpeg -i video.mp4 -f mp3 -vn video.mp3
ffmpeg用法記錄
Print help / information / capabilities:
-L show license
-h topic show help
-? topic show help
-help topic show help
--help topic show help
-version show version
-buildconf show build configuration
-formats show available formats
-devices show available devices
-codecs show available codecs
-decoders show available decoders
-encoders show available encoders
-bsfs show available bit stream filters
-protocols show available protocols
-filters show available filters
-pix_fmts show available pixel formats
-layouts show standard channel layouts
-sample_fmts show available audio sample formats
-colors show available color names
-sources device list sources of the input device
-sinks device list sinks of the output device
-hwaccels show available HW acceleration methods
Global options (affect whole program instead of just one file:
-loglevel loglevel set logging level
-v loglevel set logging level
-report generate a report
-max_alloc bytes set maximum size of a single allocated block
-y overwrite output files
-n never overwrite output files
-ignore_unknown Ignore unknown stream types
-stats print progress report during encoding
-max_error_rate ratio of errors (0.0: no errors, 1.0: 100% error maximum error rate
-bits_per_raw_sample number set the number of bits per raw sample
-vol volume change audio volume (256=normal)
Per-file main options:
-f fmt force format
-c codec codec name
-codec codec codec name
-pre preset preset name
-map_metadata outfile[,metadata]:infile[,metadata] set metadata information of outfile from infile
-t duration record or transcode "duration" seconds of audio/video
-to time_stop record or transcode stop time
-fs limit_size set the limit file size in bytes
-ss time_off set the start time offset
-sseof time_off set the start time offset relative to EOF
-seek_timestamp enable/disable seeking by timestamp with -ss
-timestamp time set the recording timestamp ("now" to set the current time)
-metadata string=string add metadata
-program title=string:st=number... add program with specified streams
-target type specify target file type ("vcd", "svcd", "dvd", "dv" or "dv50" with optional prefixes "pal-", "ntsc-" or "film-")
-apad audio pad
-frames number set the number of frames to output
-filter filter_graph set stream filtergraph
-filter_script filename read stream filtergraph description from a file
-reinit_filter reinit filtergraph on input parameter changes
-discard discard
-disposition disposition
Video options:
-vframes number set the number of video frames to output
-r rate set frame rate (Hz value, fraction or abbreviation)
-s size set frame size (WxH or abbreviation)
-aspect aspect set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)
-bits_per_raw_sample number set the number of bits per raw sample
-vn disable video
-vcodec codec force video codec ("copy" to copy stream)
-timecode hh:mm:ss[:;.]ff set initial TimeCode value.
-pass n select the pass number (1 to 3)
-vf filter_graph set video filters
-ab bitrate audio bitrate (please use -b:a)
-b bitrate video bitrate (please use -b:v)
-dn disable data
Audio options:
-aframes number set the number of audio frames to output
-aq quality set audio quality (codec-specific)
-ar rate set audio sampling rate (in Hz)
-ac channels set number of audio channels
-an disable audio
-acodec codec force audio codec ("copy" to copy stream)
-vol volume change audio volume (256=normal)
-af filter_graph set audio filters
Subtitle options:
-s size set frame size (WxH or abbreviation)
-sn disable subtitle
-scodec codec force subtitle codec ("copy" to copy stream)
-stag fourcc/tag force subtitle tag/fourcc
-fix_sub_duration fix subtitles duration
-canvas_size size set canvas size (WxH or abbreviation)
-spre preset set the subtitle options to the indicated preset
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80865.html
摘要:主要原理是使用鏈接。是中解析視頻,并把內容畫在畫布上。目前發現的不足無法播放聲音,只能播放視頻。視頻文件只支持格式的視頻目前版本支持視頻格式,似乎是不支持了,官方建議用來轉格式。 主要原理是使用 jsmpeg(Github鏈接) 。 jsmpeg是js中解析mpeg視頻,并把內容畫在畫布上。 這篇文章是記錄jsmpeg怎么用的。 目前發現jsmpeg的不足 無法播放聲音,只能播放視...
摘要:此文已由作者吳家聯授權網易云社區發布。歡迎訪問網易云社區,了解更多網易技術產品運營經驗。播放器的設計思路重構后應該包含這些功能支持點播非加密的和直播播放兼容適配移動端根據平臺自動選擇使用還是。直播的一些特點直播狀態的判斷。 此文已由作者吳家聯授權網易云社區發布。 歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 去年年中的時候,借著產品改版的機會,將之前的h5播放器好好整理重構了一番...
閱讀 2584·2023-04-25 20:50
閱讀 3929·2023-04-25 18:45
閱讀 2213·2021-11-17 17:00
閱讀 3323·2021-10-08 10:05
閱讀 3073·2019-08-30 15:55
閱讀 3487·2019-08-30 15:44
閱讀 2355·2019-08-29 13:51
閱讀 1111·2019-08-29 12:47