国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ffmpeg 4.4版本對MP4文件進行AES-CTR加密,和流式加密

這篇具有很好參考價值的文章主要介紹了ffmpeg 4.4版本對MP4文件進行AES-CTR加密,和流式加密。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? ? ? 對于ffmpeg的AES-CTR加密有兩種方式,一個是普通的整個視頻做加密,另一個是對視頻做切片處理,然后進行加密。

? 一、對于普通的加密方式

直接使用下面的命令就行

ffmpeg -i animal.mp4 -vcodec copy -acodec copy -encryption_scheme cenc-aes-ctr -encryption_key c7e16c4403654b85847037383f0c2db3 -encryption_kid a7e61c373e219033c21091fa607bf3b8  -encryption_iv 1234567890abcdef1234567890abcdef encrypted_IV3.mp4

? ? ? ? 簡單解釋一下各種參數(shù)的作用,

-vcodec copy -acodec copy 只是將 animal.mp4的音視頻數(shù)據(jù)直接拷貝到encrypted_IV3.mp4中

-encryption_scheme cenc-aes-ctr 表示采用的加密算法是cenc-aes-ctr

-encryption_key c7e16c4403654b85847037383f0c2db3 表是encryption_key 的值是c7e16c4403654b85847037383f0c2db3,這個值就是解密用的key

-encryption_kid a7e61c373e219033c21091fa607bf3b8? 表示encryption_kid 的值是a7e61c373e219033c21091fa607bf3b8,加解密就是key和id的比對

-encryption_iv 1234567890abcdef1234567890abcdef 表示加密的初始向量IV為1234567890abcdef1234567890abcdef,這個參數(shù)可以不加,ffmpeg是有默認值的

encrypted_IV3.mp4 是加密后的MP4

? ? ? ? ?播放的話,采用的是ffplay,命令行如下

ffplay encrypted_IV.mp4 -decryption_key c7e16c4403654b85847037383f0c2db3 -decryption_iv 1234567890abcdef1234567890abcdef

-decryption_key 解密用的密鑰,就是加密的encryption_key的值

-decryption_iv? 如果加密的時候有設置加密初始向量的值,那么這里也需要加,對應的是encryption_iv的值,如果加密的時候采用的是默認的,這里可以不加

對于代碼加密代碼,此處復制的別人的,項目并不需要這個,我就沒做驗證

AVDictionary *opts = NULL;
// 指定加密參數(shù)
av_dict_set(&format_opts, "encryption_scheme", "cenc-aes-ctr", 0);
av_dict_set(&format_opts, "encryption_key", "c7e16c4403654b85847037383f0c2db3", 0);
av_dict_set(&format_opts, "encryption_kid", "a7e61c373e219033c21091fa607bf3b8", 0);
ret = avformat_write_header(AVFormatContext, &format_opts);

?解密的代碼也是別人的,但我是經(jīng)過驗證的,確認可行

AVDictionary *format_opts = NULL;
// 指定解密key
av_dict_set(&format_opts, "decryption_key", "c7e16c4403654b85847037383f0c2db3", 0);
av_dict_set(&format_opts, "decryption_iv", "1234567890abcdef1234567890abcdef", 0);
err = avformat_open_input(&AVFormatContext, "path", AVInputFormat, &format_opts);

? 二、對于流式的加密方式

命令行如下

ffmpeg -i animal.mp4 -movflags frag_keyframe -encryption_scheme cenc-aes-ctr -encryption_key c7e16c4403654b85847037383f0c2db3 -encryption_kid a7e61c373e219033c21091fa607bf3b8 encrypted.mp4

重復的參數(shù)我就不贅述了,

-movflags?選項用于設置MOV或MP4容器(文件格式)的特定標志。這些標志會改變輸出文件的結(jié)構(gòu)或行為。

frag_keyframe?強制每個關鍵幀都開始一個新的片段,使文件適合于流式傳輸。這個參數(shù)就是區(qū)分流式還是普通的一個關鍵參數(shù)

?播放的話和普通的一致。

出現(xiàn)下面這三個字段,就是說明成功了。工具我用的是Bento4,Bento4有個命令mp4dump可以查看。

ffmpeg 4.4版本對MP4文件進行AES-CTR加密,和流式加密,ffmpeg,objective-c,iOS,AES-CTR,加密

? 三、需要注意的是---moov

? ? ? ? ffmpeg有一個參數(shù),叫empty_moov 。當你創(chuàng)建一個MP4文件時,通常它首先寫入一個moov原子(也就是元數(shù)據(jù)),然后是mdat原子(包含實際的音頻/視頻數(shù)據(jù))。但是,如果你想開始記錄并在之后添加元數(shù)據(jù),你需要首先寫入一個空的moov原子,簡單理解就是:

普通的MP4 的格式(從上到下):? moov -> data?

加了empty_moov的MP4格式:? empty_moov -> data -> moov

如果你把moov移動到了MP4末尾的同時做了aes-ctr加密,就會出錯,因為ffmpeg在解密aes-ctr時要先知道加密的重要參數(shù),而這個參數(shù)就在moov中,然后才能進行解密,如果moov放在了末尾,那ffmpeg就不知道要怎么解密了。該情況下我遇到的錯誤有下面幾種

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x149204a10] Incorrect number of samples in encryption info

ffmpeg 4.4版本對MP4文件進行AES-CTR加密,和流式加密,ffmpeg,objective-c,iOS,AES-CTR,加密

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1426658b0] saio atom found without saiz

ffmpeg 4.4版本對MP4文件進行AES-CTR加密,和流式加密,ffmpeg,objective-c,iOS,AES-CTR,加密

[h264 @ 0x7f93ba8a3e00] Invalid NAL unit size (217505651 > 1332).

[h264 @ 0x7f93ba8a3e00] Error splitting the input into NAL units.

ffmpeg 4.4版本對MP4文件進行AES-CTR加密,和流式加密,ffmpeg,objective-c,iOS,AES-CTR,加密文章來源地址http://www.zghlxwxcb.cn/news/detail-638334.html

到了這里,關于ffmpeg 4.4版本對MP4文件進行AES-CTR加密,和流式加密的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 使用FFMPEG庫封裝264視頻和acc音頻數(shù)據(jù)到MP4文件中

    使用FFMPEG庫封裝264視頻和acc音頻數(shù)據(jù)到MP4文件中

    ffmepeg 4.4 一段H264的視頻文件 一段acc格式的音頻文件 1.使用avformat_open_input分別打開視頻和音頻文件,初始化其AVFormatContext,使用avformat_find_stream_info獲取編碼器基本信息 2.使用avformat_alloc_output_context2初始化輸出的AVFormatContext結(jié)構(gòu) 3.使用函數(shù)avformat_new_stream給輸出的AVFormatContext結(jié)

    2024年02月11日
    瀏覽(20)
  • 使用FFMPEG分離mp4/flv文件中的264視頻和aac音頻

    使用FFMPEG分離mp4/flv文件中的264視頻和aac音頻

    ffmpeg 4.4 一個MP4或flv格式的視頻文件 大致分為以下幾個簡單步驟: 1.使用avformat_open_input 函數(shù)打開文件并初始化結(jié)構(gòu)AVFormatContext 2.查找是否存在音頻和視頻信息 3.構(gòu)建一個h264_mp4toannexb比特流的過濾器,用來給視頻avpaket包添加頭信息 4.打開2個輸出文件(音頻, 視頻) 5.循環(huán)讀

    2024年02月15日
    瀏覽(21)
  • 不用FFMpeg,用Python代碼解密ts文件還原mp4視頻(前提:有正確的key)

    不用FFMpeg,用Python代碼解密ts文件還原mp4視頻(前提:有正確的key)

    好不容易下載了.ts視頻,但內(nèi)容全被加密。要解密的前提條件是必須先有正確的key文件,然后對.ts文件進行AES-128解密,還原成.mp4視頻。 以往的做法是用FFMpeg命令: 現(xiàn)在可以用Python代碼直接解密。 非常感謝這篇文章給我參考的靈感: 流媒體m3u8爬蟲研究 - Echocipher 首先Python要

    2024年02月02日
    瀏覽(28)
  • python ffmpeg將mp4文件實時轉(zhuǎn)碼為ts,并指定pid等信息,輸出到udp

    要將MP4文件實時轉(zhuǎn)碼為TS格式,并將PID等信息指定為UDP輸出,可以使用 subprocess 模塊和ffmpeg命令行工具來實現(xiàn)。以下是一個示例代碼,用于實時轉(zhuǎn)碼并將輸出發(fā)送到UDP服務器: 在上述代碼中,我們首先定義了輸入文件、UDP服務器地址和PID等信息。然后,我們使用 subprocess.Pop

    2024年01月22日
    瀏覽(35)
  • 如何使用ffmpeg將BDMV(m2ts)轉(zhuǎn)換成MKV、MP4等其他格式的文件

    如何使用ffmpeg將BDMV(m2ts)轉(zhuǎn)換成MKV、MP4等其他格式的文件

    BDMV 是藍光碟使用的格式。這種格式?jīng)]有辦法使用播放軟件播放,必須要用硬盤播放器,也就是專門的設備。但是最經(jīng)典的 ffmpeg 可以將其轉(zhuǎn)換成其他格式,并且保持相同的碼率和清晰度,這樣就可以很方便的查看了。 本文使用 macOS 進行演示,但是會介紹如何一些其他平臺的

    2024年02月10日
    瀏覽(33)
  • 在ubuntu系統(tǒng)上安裝ffmpeg支持rrweb使用rrvideo對視頻文件轉(zhuǎn)mp4格式遇到的一些問題及解決辦法
  • 嗶哩嗶哩緩存轉(zhuǎn)碼|FFmpeg將m4s文件轉(zhuǎn)為mp4|PHP自動批量轉(zhuǎn)碼B站視頻

    嗶哩嗶哩緩存轉(zhuǎn)碼|FFmpeg將m4s文件轉(zhuǎn)為mp4|PHP自動批量轉(zhuǎn)碼B站視頻

    打開ffMpeg官網(wǎng) 選擇window=Windows builds from gyan.dev 打開https://www.gyan.dev/ffmpeg/builds/ 這里是上面提取的下載鏈接如果過期不能用自己去官網(wǎng)下 上面下載的FFmpeg是綠色軟件,下載解壓到你的常用軟件安裝目錄即可,然后進入bin復制全路徑配置下系統(tǒng)環(huán)境變量即可 https://github.com/PHP-F

    2024年02月14日
    瀏覽(24)
  • FFMPEG mp4封裝實現(xiàn)

    FFMPEG mp4封裝實現(xiàn)

    FFMPEG mp4錄像 author:lyn date:2022.09.28 version: ffmpeg4.1.3 1.mp4數(shù)據(jù)結(jié)構(gòu) 2.ffmpeg mp4封裝實現(xiàn) 3.mp4函數(shù)調(diào)用關系 4.參考資料 1.mp4數(shù)據(jù)結(jié)構(gòu) 1.1mp4簡介 MP4或稱MPEG-4第14部分(英語:MPEG-4 Part 14)是一種標準的數(shù)字多媒體容器格式。MPEG-4第14部分的擴展名為 .mp4 ,以存儲數(shù)字音頻及數(shù)字視頻

    2023年04月08日
    瀏覽(23)
  • ffmpeg操作MP4視頻封面

    ffmpeg操作MP4視頻封面

    提取視頻封面 視頻流中提取幀圖 3.重新設置視頻封面 更多參考: https://blog.csdn.net/m0_37624402/article/details/125123818

    2024年02月04日
    瀏覽(21)
  • 20231005使用ffmpeg旋轉(zhuǎn)MP4視頻

    20231005使用ffmpeg旋轉(zhuǎn)MP4視頻

    20231005使用ffmpeg旋轉(zhuǎn)MP4視頻 2023/10/5 12:21 百度搜搜:ffmpeg 旋轉(zhuǎn)90度 https://zhuanlan.zhihu.com/p/637790915 【FFmpeg實戰(zhàn)】FFMPEG常用命令行 https://blog.csdn.net/weixin_37515325/article/details/127817057 FFMPEG常用命令行 5.視頻旋轉(zhuǎn) 順時針旋轉(zhuǎn)90度:ffmpeg -i test.mp4 -vf \\\"transpose=1\\\" out.mp4//順時針旋轉(zhuǎn)90° 逆時針

    2024年02月07日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包