JP2019526987A - 宣言命令に基づいてビデオコンテンツを動的に提供するためのシステムおよび方法 - Google Patents

宣言命令に基づいてビデオコンテンツを動的に提供するためのシステムおよび方法 Download PDF

Info

Publication number
JP2019526987A
JP2019526987A JP2019511949A JP2019511949A JP2019526987A JP 2019526987 A JP2019526987 A JP 2019526987A JP 2019511949 A JP2019511949 A JP 2019511949A JP 2019511949 A JP2019511949 A JP 2019511949A JP 2019526987 A JP2019526987 A JP 2019526987A
Authority
JP
Japan
Prior art keywords
media content
soundtrack
modified
instructions
presented
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019511949A
Other languages
English (en)
Inventor
エドワード フィッシャー、ウィリアム
エドワード フィッシャー、ウィリアム
グレゴリー サルチチョーリ、ナサニエル
グレゴリー サルチチョーリ、ナサニエル
マシュー マジャー、アレクサンダー
マシュー マジャー、アレクサンダー
エム. ルベン、ウィリアム
エム. ルベン、ウィリアム
ジェイ. クフィアテク、ニコラス
ジェイ. クフィアテク、ニコラス
ダブリュ. ゴメス、ザカリー
ダブリュ. ゴメス、ザカリー
Original Assignee
フェイスブック,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2019526987A publication Critical patent/JP2019526987A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/036Insert-editing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2368Multiplexing of audio and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • H04N21/8113Monomedia components thereof involving special audio data, e.g. different tracks for different languages comprising music, e.g. song in MP3 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/8715Regeneration of colour television signals involving the mixing of the reproduced video signal with a non-recorded signal, e.g. a text signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

システム、方法、および非一時的コンピュータ可読媒体は、一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するための第1の選択を取得することができる。一組のムードから1つのムードを特定するための第2の選択を取得することができる。サウンドトラックは、第1の選択または第2の選択のうちの少なくとも1つに基づいて特定することができる。サウンドトラックは、一部内の各メディアコンテンツアイテムがサウンドトラックの再生中に提示される時期を決定するために利用されるデータと関連付けることができる。一部内の各メディアコンテンツアイテムがサウンドトラックの再生中に提示される方法を決定するために利用される一組の宣言命令を提供することができる。一部は、一組の宣言命令に基づいて動的に提示することができる。一部は、サウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。

Description

本技術はメディア処理の分野に関する。より具体的には、本技術は、宣言命令(declarative instructions)に基づいてビデオコンテンツを動的に提供するための技法に関する。
今日、人々は、広範囲の目的のためにコンピューティングデバイス(またはコンピューティングシステム)を利用する。ユーザは、コンピューティングデバイスを使用して、相互にインタラクションし、コンテンツにアクセスし、コンテンツを共有し、さらにコンテンツを作成することができる。場合によっては、ユーザは、自身のコンピューティングデバイスを使用して、画像、オーディオ、テキスト、ステータス更新、コメント、および/または投稿などのコンテンツアイテムを作成および提供することができる。コンテンツアイテムは、例えば、ソーシャルネットワーキングシステム(即ち、ソーシャルネットワーキングサービス、ソーシャルメディアシステム、ソーシャルメディアサービス)によって提示および記憶することができる。場合によっては、ユーザは、コンピューティングデバイスを利用してソーシャルネットワーキングシステムにより利用可能なビデオコンテンツなどのマルチメディアまたはメディアコンテンツにアクセスまたはそれらとインタラクションすることができる。
コンピュータ技術の分野で特に発生した従来の手法では、ビデオコンテンツは、ユーザがビデオコンテンツを視聴または鑑賞する前に、1つまたは複数のコンピューティングデバイス(またはシステム)によってレンダリングされる必要がある。一例では、ユーザは、ビデオコンテンツを修正または編集することによってビデオコンテンツとさらにインタラクションすることができる。場合によっては、従来の手法では、ユーザはビデオコンテンツを編集またはそれ以外に修正することができるが、編集または修正されたビデオコンテンツは、視聴、鑑賞、またはアクセスできる前に再度レンダリングする必要があり、利便性に欠けるかまたは非効率的である。これらおよび他の懸案事項は、ビデオなどのメディアコンテンツへのアクセスまたはそれ以外にインタラクションに関連する全体的なユーザエクスペリエンスに対して課題を生じさせるか、または全体的なユーザエクスペリエンスを低下させる可能性がある。
本開示のいくつかの実施形態は、一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するための第1の選択を取得するように構成されたシステム、方法、および非一時的コンピュータ可読媒体を含むことができる。一組のムードから1つのムードを特定するための第2の選択を取得することができる。サウンドトラックは、第1の選択または第2の選択のうちの少なくとも1つに基づいて特定することができる。サウンドトラックは、一部のメディアコンテンツアイテムの各メディアコンテンツアイテムがサウンドトラックの再生中に提示される時期を決定するために利用されるデータと関連付けることができる。一部内の各メディアコンテンツアイテムがサウンドトラックの再生中に提示される方法を決定するために利用される一組の宣言命令を提供することができる。一部のメディアコンテンツアイテムは、一組の宣言命令に基づいて動的に提示することができる。一部のメディアコンテンツアイテムは、サウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。
一実施形態において、変更された一部のメディアコンテンツアイテムが特定されるように第1の選択に対する変更を受信することができる。変更された一部のメディアコンテンツアイテムに基づいて変更されたサウンドトラックを特定することができる。変更されたサウンドトラックの再生中に変更された一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令を提供することができる。変更された一組の宣言命令に基づいて変更された一部のメディアコンテンツアイテムを動的に提示することができる。変更された一部のメディアコンテンツアイテムは、変更されたサウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。
一実施形態において、変更されたムードが特定されるように第2の選択に対する変更を受信することができる。変更されたムードに基づいて変更されたサウンドトラックを特定することができる。変更されたサウンドトラックの再生中に一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令を提供することができる。変更された一組の宣言命令に基づいて一部のメディアコンテンツアイテムを動的に提示することができる。一部のメディアコンテンツアイテムは、変更されたサウンドトラックの再生中に提示ことができ、かつビデオコンテンツを表現するために提示ことができる。
一実施形態において、サウンドトラックは、一部のメディアコンテンツアイテムの各メディアコンテンツアイテムがサウンドトラックの再生中に提示される時期を決定するために利用されるデータと関連付けることができる。
一実施形態において、サウンドトラックを特定することは、一部のメディアコンテンツアイテム内のメディアコンテンツアイテムの量に基づいて特有のバージョンのサウンドトラックを特定することを含むことができ、特有のバージョンのサウンドトラックは、一部のメディアコンテンツアイテム内のメディアコンテンツアイテムの量と対応する特有の再生長を有する。
一実施形態において、一組の宣言命令が、一部が提示されているときに、一部内の特定のメディアコンテンツアイテムから一部内の次のメディアコンテンツアイテムに移行する方法を決定するために利用することができる。
一実施形態において、一組の宣言命令は、一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムについて、1)個々の開始状態、2)個々の終了状態、3)個々の開始状態から個々の終了状態への個々の移動処理、4)個々の開始状態から個々の終了状態への個々のズーム処理、または5)個々の開始状態が個々の終了状態に移行する個々の期間のうちの少なくとも1つを指定することができる。
一実施形態において、一組の宣言命令内の1つまたは複数の宣言命令は、一部のメディアコンテンツアイテムを動的に提示するために動的に実行することができる。
一実施形態において、一部のメディアコンテンツアイテムは、ビデオファイルを生成することなく、ビデオコンテンツを表現するために提示することができる。
一実施形態において、一組の宣言命令に基づいて提示された一部のメディアコンテンツアイテムをビデオコンテンツとして投稿するためのコマンドを取得することができる。一組の宣言命令に基づいてビデオファイルを生成することができる。
開示された技術の他の多くの特徴、用途、実施形態、および/または変形が添付の図面および以下の詳細な説明から明らかとなることを理解されたい。本明細書に記載の構造、システム、非一時的コンピュータ可読媒体、および方法の追加の実施形態および/または代替の実施形態は、開示された技術の原理から逸脱することなく採用することができる。
本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することを円滑に行うように構成された例示的な動的ビデオコンテンツモジュールを含む例示的なシステムを示す。 本開示の一実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することを円滑に行うように構成された例示的な宣言命令モジュールを示す。 本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することを円滑に行うように構成された例示的な動的プレゼンテーションモジュールを示す。 本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連する例示的なシナリオを示す。 本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連する例示的なシナリオを示す。 本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連した例示的な方法を示す。 本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連した例示的な方法を示す。 本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連した例示的な方法を示す。 本開示の一実施形態による、様々なシナリオで利用することができる例示的なソーシャルネットワーキングシステムを含む例示的なシステムのネットワークを示す。 本開示の一実施形態による、様々なシナリオで利用することができるコンピュータシステムまたはコンピューティングデバイスの一例を示す。
図面は、例示のみを目的として開示された技術の様々な実施形態を示しており、図面は、同じ構成要素を特定するために同じ参照番号を使用している。当業者は、以下の説明から、本明細書に記載の開示された技術の原理から逸脱することなく、図面に示された構造および方法の代替実施形態を採用できることを容易に認識するであろう。
宣言命令に基づくビデオコンテンツの動的提供
人々は様々な目的のためにコンピューティングシステム(またはデバイス)を使用する。ユーザは、自身のコンピューティングシステムを利用して、接続を確立し、通信し、互いにインタラクションし、および/または様々な種類のコンテンツとインタラクションすることができる。場合によっては、コンピューティングデバイスは、画像またはビデオ(例えば、一組のビデオ画像フレームまたは静止フレーム)などのメディアコンテンツをキャプチャまたは記録することができるカメラを含むか、またはカメラに対応することができる。場合によっては、ユーザは、コンピューティングデバイスを利用して、ソーシャルネットワーキング(またはソーシャルメディア)システムまたはサービスにアクセスして画像やビデオなどのメディアコンテンツを投稿、編集、共有、および/またはそれ以外にメディアコンテンツと関与(例えば、コメント、好みの表示、など)することができる。一例では、ユーザは、メディアコンテンツアイテムを結合または集約して、フィルムまたは動画ファイルなどのビデオを作成することができる。
場合によっては、ビデオを作成するためのコンピュータ技術の分野で特に発生した従来の手法は、様々なメディアコンテンツアイテムを結合またはステッチし、その後メディアコンテンツアイテムをレンダリングまたはそれ以外に処理してビデオ(例えば、ビデオファイル)を生成することができる。多くの場合、ビデオを作成しようとしているユーザは、ビデオの作成に使用されたメディアコンテンツアイテムを変更することを所望する可能性がある。しかしながら、コンピュータ技術の分野で特に発生した従来の手法によれば、ビデオを作成するために使用されるメディアコンテンツアイテムを変更した後に、変更を組み込んだ新たなビデオを作成するために別のレンダリングまたは処理手順が必要となる。従って、ビデオ作成のためのコンピュータ技術の分野で特に発生するそのような従来の手法は、非効率的または不便であり得る。
これらの問題または他の問題のために、コンピュータ技術の分野で特に発生した従来の手法は不利益であるかまたは問題がある可能性がある。従って、従来の手法に関連する前述および他の不利益を克服する、コンピュータ技術に根ざした改善された手法が有益であり得る。コンピュータ技術に基づいて、開示された技術は宣言命令に基づいてビデオコンテンツを動的に提供することができる。本開示の様々な実施形態は、一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するための第1の選択を取得するように構成されたシステム、方法、および非一時的コンピュータ可読媒体を含むことができる。一組のムードから1つのムードを特定するための第2の選択を取得することができる。サウンドトラックは、第1の選択または第2の選択のうちの少なくとも一方に基づいて特定することができる。サウンドトラックは、一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムがサウンドトラックの再生中に提示される時期を決定するために利用されるデータと関連付けることができる。一部内の各メディアコンテンツアイテムがサウンドトラックの再生中に提示される方法を決定するために利用される一組の宣言命令を提供することができる。一部のメディアコンテンツアイテムは、一組の宣言命令に基づいて動的に提示することができる。一部のメディアコンテンツアイテムは、サウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。開示された技術に関連する多くの変形および/または他の可能性があり得ることが企図される。
図1は、本開示の一実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することを円滑に行うように構成された例示的な動的ビデオコンテンツモジュール102を含む例示的なシステム100を示す。図1の例に示すように、動的ビデオコンテンツモジュール102は、選択モジュール104、サウンドトラックモジュール106、宣言命令モジュール108、および動的プレゼンテーションモジュール110を含むことができる。この図面および本明細書のすべての図面に示される構成要素(例えば、モジュール、要素など)は例示的なものにすぎず、他の実施形態は追加の構成要素、より少ない構成要素、統合された構成要素、または異なる構成要素を含み得る。いくつかの構成要素は、関連する詳細が不明瞭とならないように、示されない場合がある。
いくつかの実施形態では、動的ビデオコンテンツモジュール102は、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせとして、部分的または全体的に実施することができる。全般的に、本明細書で説明するモジュールは、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせと関連付けることができる。いくつかの実施形態では、モジュールの1つまたは複数の機能、タスク、および/または動作を、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および/またはそれらの任意の組み合わせによって実行または行うことができる。場合によっては、動的ビデオコンテンツモジュール102は、ユーザコンピューティングデバイスまたはクライアントコンピューティングデバイス上など、1つまたは複数のコンピューティングデバイスまたはシステム上で実行されるソフトウェアとして、部分的または全体的に実施することができる。例えば、動的ビデオコンテンツモジュール102またはその少なくとも一部は、図6のユーザデバイス610などのユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上で動作するアプリケーション(例えば、app)、プログラム、アプレット、またはオペレーティングシステムなどとして実施するか、またはその中に実装することができる。別の例では、動的ビデオコンテンツモジュール102またはその少なくとも一部は、ネットワークサーバまたはクラウドサーバなどの1つまたは複数のサーバを含む1つまたは複数のコンピューティングデバイスまたはコンピューティングシステムを使用して実施することができる。いくつかの例では、動的ビデオコンテンツモジュール102は、図6のソーシャルネットワーキングシステム630のようなソーシャルネットワーキングシステム(またはソーシャルネットワーキングサービス)内で部分的または全体的に実施されるか、協働して部分的または全体的に動作するように構成される。多くの変形またはその他の可能性があることを理解されたい。
選択モジュール104は、一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するための第1の選択を取得することを円滑に行うように構成され得る。いくつかの実施形態では、選択モジュール104は、一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するために選択を受信する、取り出す、検出するか、またはそれ以外に取得することができる。一例では、ユーザのコンピューティングデバイス(またはシステム)は、ローカルカメラロールなどのメディアコンテンツライブラリを含むことができ、メディアコンテンツライブラリは一組のメディアコンテンツアイテム(例えば、画像、ビデオなど)を格納する。この例では、ユーザは、一部に含まれるべき1つまたは複数のメディアコンテンツアイテムをタップする、クリックする、またはそれ以外にインタラクションすることなどによって、一部のメディアコンテンツアイテムを選択または特定することができる。選択モジュール104は、一部のメディアコンテンツアイテムを特定するユーザの選択を取得することができる。いくつかの実施形態では、選択モジュール104は自動的に(例えば、手動労力/ユーザ労力無しに)一部のメディアコンテンツアイテムを選択または特定することができる。例えば、選択モジュール104は、1つまたは複数の画像処理技術(例えば、画像分類、オブジェクト/顔検出、オブジェクト/顔認識など)を利用して、顔を描画する画像やビデオフレームなど、その一組からどのメディアコンテンツアイテムが関心を持たせるかまたは関連性があるかを判断することができる。この場合、そのような関心を持たせるかまたは関連性のあるメディアコンテンツアイテムの選択は、選択モジュール104によって実行および/または取得することができる。
いくつかの実施形態では、選択モジュール104は、解像度データ、ディメンションデータ、時間データ、位置データ、焦点データ、数量データなど、一部のメディアコンテンツアイテムに関連するメタデータを取得することができる。例えば、そのようなメタデータは、その後、選択された一部のメディアコンテンツアイテムがビデオコンテンツを表現するか、またはビデオコンテンツのように見えるようにするために動的に提示される方法を決定するために利用され得る。本明細書のすべての例は例示目的で提供されており、開示された技術に関連する多くの変形が可能であることを理解されたい。
さらに、選択モジュール104は、一組のムードから1つのムードを特定するための第2の選択を取得することを円滑に行うように構成することができる。いくつかの実施形態では、一組のムードは、指定する、事前定義する、および/または事前設定する、その他することができる。一組内のムードの例には、それらには限定されないが、幸福的なムード、楽観的/希望的なムード、冒険的/刺激的なムード、悲観的なムード、および/またはノスタルジックなムードが含まれる。場合によっては、選択モジュール104は、ユーザ入力に基づいてムードを特定するための選択を取得することができる。例えば、ユーザは、特定のムードを選択または特定するために、一組のムードから特定のムードをタップする、クリックする、またはそれ以外にインタラクションすることができる。いくつかの実施形態では、選択モジュール104は、デフォルト設定、システム設定、または定義されたプリファレンスなどに基づいて、ムードの選択を自動的に(例えば、手動労力/ユーザ労力無しに)実行または取得することができる。一例では、選択モジュール104は、1つまたは複数の画像処理技法を利用して、一部のメディアコンテンツアイテムにおいて描画された1つまたは複数の顔が幸福的なムード(例えば、顔が笑っている)、悲観的なムード(例えば、顔をしかめる)、または他の感情を示しているかどうかを判断することができる。この例では、一部において顔がどのように描画されているかに基づいて、選択モジュール104は、一組のムードからの1つのムードの選択を実行および/または取得することができる。ここでも、多くの変形が可能である。
さらに、サウンドトラックモジュール106は、(一部のメディアコンテンツアイテムを特定するための)第1の選択または(ムードを特定するための)第2の選択のうちの少なくとも一方に基づいてサウンドトラックを特定することを円滑に行うように構成することができる。いくつかの実施形態では、複数のサウンドトラック(様々な再生長のサウンドトラックバージョンを含む)をローカルに格納することができる。ムードの第2の選択に基づいて、サウンドトラックモジュール106は、例えば、複数の中から特有のサウンドトラックを特定することができる。場合によっては、選択または特定される特有のサウンドトラックは、選択されたムードに関連付けられるように、選択されたムードと対応するように、および/または選択されたムードを表現するように指定または事前定義されることができる。
さらに、場合によっては、サウンドトラックを特定することは、一部のメディアコンテンツアイテム中のメディアコンテンツアイテムの量に基づいて特有のバージョンのサウンドトラックを特定することを含むことができる。特有のバージョンのサウンドトラックは、一部内のメディアコンテンツアイテムの量と関連付けられるように、メディアコンテンツアイテムの量と対応するように、および/またはメディアコンテンツアイテムの量に適合するように指定または事前定義された特有の再生長を有することができる。例えば、より多くのメディアコンテンツアイテムが一部に含まれるように選択されるとき、特定されるかまたは選択される特有のバージョンのサウンドトラックは、より少ないメディアコンテンツアイテムが一部に含まれるように選択されるときよりも、より長い再生長を有することができる。
さらに、いくつかの実施形態では、サウンドトラックは、サウンドトラックの再生中に、一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムが提示される時期を決定するために利用されるデータと関連付けることができる。例えば、サウンドトラックにビート検出プロセスを適用して、サウンドトラック内の1つまたは複数のビートを識別することができる。場合によっては、1つまたは複数のビートを特定の順序で優先させることができる(例えば、重要性のより高いビートまたは関心度のより高いビートを、重要性および関心度の低いビートより優先させることができる)。ビートに関するこの情報は、サウンドトラックに関連付けられているデータ(例えば、メタデータ)内に格納するか、または含めることができる。ビートに関する情報または他の同様の情報(例えば、サウンドトラック内の指定された/事前定義されたカットポイント)に基づいて、サウンドトラックの再生中に、一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムが提示される時期を決定することができる。場合によっては、手動労力または手動キュレーションによって、上記のプロセスの少なくとも一部を円滑に行うことができる。
さらに、宣言命令モジュール108は、サウンドトラックの再生中に、一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される一組の宣言命令を提供することを円滑に行うように構成することができる。宣言命令モジュール108に関するさらなる詳細は、図2Aを参照して以下に提供される。
さらに、動的プレゼンテーションモジュール110は、一組の宣言命令に基づいて一部のメディアコンテンツアイテムを動的に提示することを円滑に行うように構成することができる。一部のメディアコンテンツアイテムは、サウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。動的プレゼンテーションモジュール110は、図2Bを参照して以下により詳細に説明される。
一例では、選択モジュール104は、第1の選択に対する変更を受信して、変更された一部のメディアコンテンツアイテムが特定されるように一部を特定することができる。この例では、第1の選択に対する変更は、変更された一部を選択または特定するためにユーザによって提供することができる。変更されたサウンドトラックは、変更された一部のメディアコンテンツアイテムに基づいてサウンドトラックモジュール106によって特定することができる。変更されたサウンドトラックの再生中に、変更された一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令は、宣言命令モジュール108によって提供することができる。変更された一部のメディアコンテンツアイテムは、変更された一組の宣言命令に基づいて動的プレゼンテーションモジュール110によって動的に提示することができる。変更された一部のメディアコンテンツアイテムは、変更されたサウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。
別の例では、選択モジュール104は、第2の選択に対する変更を受信して、変更されたムードが特定されるようにムードを特定することができる。この例では、第2の選択に対する変更は、変更されたムードを選択または特定するためにユーザによって提供することができる。変更されたサウンドトラックは、変更されたムードに基づいてサウンドトラックモジュール106によって特定することができる。変更されたサウンドトラックの再生中に、一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令は、宣言命令モジュール108によって提供することができる。一部のメディアコンテンツアイテムは、変更された一組の宣言命令に基づいて動的プレゼンテーションモジュール110によって動的に提示することができる。一部のメディアコンテンツアイテムは、変更されたサウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。
さらに、いくつかの実施形態では、動的ビデオコンテンツモジュール102は、例示的なシステム100に示すように、少なくとも1つのデータストア120と通信し、かつ/または少なくとも1つのデータストア120と動作するように構成することができる。少なくとも1つのデータストア120は、様々な種類のデータを記憶し維持するように構成することができる。いくつかの実施形態では、少なくとも1つのデータストア120は、ソーシャルネットワーキングシステム(例えば、図6のソーシャルネットワーキングシステム630)に関連する情報を記憶することができる。ソーシャルネットワーキングシステムに関連する情報は、ユーザ、ソーシャルつながり、ソーシャルインタラクション、ロケーション、ジオフェンスエリア、地図、場所、イベント、ページ、グループ、投稿、通信、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャルグラフに関するデータ、および様々なその他の種類のデータを含むことができる。いくつかの実施形態では、少なくとも1つのデータストア120は、ユーザ識別子、ユーザ情報、プロファイル情報、ユーザロケーション、ユーザ指定設定、ユーザによって作成されたかまたは投稿されたコンテンツ、および様々な他のタイプのユーザデータなどのユーザに関連する情報を記憶することができる。いくつかの実施形態では、少なくとも1つのデータストア120は、動的ビデオコンテンツモジュール102によって利用される情報を記憶することができる。ここでも、開示された技術に関連する多くの変形または他の可能性があり得ることが企図される。
図2Aは、本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することを円滑に行うように構成された例示的な宣言命令モジュール202を示す。いくつかの実施形態では、図1の宣言命令モジュール108は、宣言命令モジュール202として具体化することができる。図2Aの例に示すように、宣言命令モジュール202は、開始状態モジュール204、終了状態モジュール206、処理モジュール208、および時間モジュール210を含むことができる。
前述のように、宣言命令モジュール202は、選択された一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムが特定されたサウンドトラックの再生中に提示される方法を決定するために利用される一組の宣言命令の提供を円滑に行うように構成することができる(即ち、一部は、サウンドトラックに対応するオーディオと共にビデオコンテンツを表現するために提示される)。場合によっては、宣言命令は独自のものとすることができる。場合によっては、開示の技術は命令型命令ではなく宣言命令を利用することができる。一般に、命令型プログラミング命令は、コンピューティングシステム(またはデバイス)にオペレーションまたはタスクを実行する方法を指定する。結果として、意図していること、または起きることを所望することが起きる。対照的に、宣言型プログラミング命令は、コンピューティングシステムに意図していること、または起きることを所望することを指定し、コンピューティングシステムがオペレーションまたはタスクを実行する方法を判断または判定することを可能にする。例えば、命令型プログラミング命令は、意図したまたは所望のオペレーションまたはタスクを実行する方法を段階的にコンパイラに指定するのに対し、宣言型プログラミング命令は、意図した結果または起きることを所望する結果を記述するが、意図した結果または所望の結果を達成するための方法は必ずしも記述しない。
いくつかの実施形態では、一部のメディアコンテンツアイテムに関連するメタデータに基づいて、選択されたムードおよび/または特定されたサウンドトラックを用いて、宣言命令モジュール202は一組の宣言命令を生成することができる。場合によっては、宣言命令モジュール202は、一組の宣言命令を利用して、一部が提示されている(例えば、ビデオコンテンツを表現するか、またはビデオコンテンツのように見えるようにするために提示されている)ときに、一部内の特定のメディアコンテンツアイテムから一部内の次のメディアコンテンツアイテムに移行する方法を決定することができる。多くの変形が可能である。
いくつかの実施形態では、一組の宣言命令は、一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムについて、1)個々の開始状態、2)個々の終了状態、3)個々の開始状態から個々の終了状態への個々の移動処理、4)個々の開始状態から個々の終了状態への個々のズーム処理、または5)個々の開始状態が個々の終了状態に移行する個々の期間のうちの少なくとも1つを指定することができる。一組の宣言命令で指定された個々の開始状態は、開始状態モジュール204によって提供され、一組の宣言命令で指定された個々の終了状態は、終了状態モジュール206によって提供されることができる。さらに、処理モジュール208は、個々の開始状態から個々の終了状態への個々の移動処理、および/または個々の開始状態から個々の終了状態への個々のズーム処理を提供することができる。さらに、時間モジュール210は、個々の開始状態が個々の終了状態に移行する個々の期間を提供することができる。
一例では、開始状態モジュール204は、一部内の特定のメディアコンテンツアイテムが、X×Xピクセルに対応し、かつ表示画面(または表示画面の視聴可能領域)の左側に存在する特定の開始状態を有するように指定できる。終了状態モジュール206は、特定のメディアコンテンツアイテムが、Y×Yピクセルに対応し、かつ表示画面(または表示画面の視聴可能領域)の右側に存在する特定の終了状態を有するように指定することができる。処理モジュール208は、特定のコンテンツアイテムに対して、特定の開始状態(例えば、左側)から特定の終了状態(例えば、右側)への特定の移動処理が線形となるように指定することができる。処理モジュール208はまた、特定の移動処理について速度および/または方向を指定することができる。処理モジュール208はさらに、特定のコンテンツアイテムについて、特定の開始状態(例えば、X×Xピクセル)から特定の終了状態(例えば、Y×Yピクセル)への特定のズームインまたはズームアウト処理が線形となるように指定することができる。処理モジュール208はまた、特定のズーム処理について速度および/または方向を指定することができる。さらに、時間モジュール210は、特定のコンテンツアイテムに対して、特定の開始状態が特定の終了状態に移行する特定の期間が2秒であることを指定することができる。上記で説明したように、本明細書のすべての例は例示目的で提供されており、多くの変形が可能であることが企図される。
図2Bは、本開示の一実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することを円滑に行うように構成された例示的な動的プレゼンテーションモジュール222を示す。いくつかの実施形態では、図1の動的プレゼンテーションモジュール110は、例示的な動的プレゼンテーションモジュール222として具体化することができる。図2Bに示されるように、動的プレゼンテーションモジュール222は動的実行モジュール224およびビデオファイルモジュール226を含むことができる。
動的プレゼンテーションモジュール222は、提供された一組の宣言命令に基づいてメディアコンテンツアイテムの選択された一部を動的に提示することを円滑に行うように構成することができる。場合によっては、一部のメディアコンテンツアイテムは、特定されたサウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために、またはビデオコンテンツのように見えるようにするために提示することができる。いくつかの実施形態では、動的プレゼンテーションモジュール222は、動的実行モジュール224を利用して、一部のメディアコンテンツアイテムを動的に提示するために、一組の宣言命令のうちの1つまたは複数の宣言命令を動的に実行することができる。例えば、動的実行モジュール224は、一部がビデオコンテンツを表現するために提示されるときに宣言命令をリアルタイムで(または、ほぼリアルタイムで)動的に実行することができる。さらに、場合によっては、一部のメディアコンテンツアイテムは、ビデオファイル(例えば、符号化/レンダリングされたビデオファイル)を生成することなく、ビデオコンテンツを表現するために提示することができる。従って、提示された一部のメディアコンテンツアイテムはビデオコンテンツプレビューに対応することができる。
さらに、いくつかの実施形態では、動的プレゼンテーションモジュール222は、ビデオファイルモジュール226を利用して、一組の宣言命令に基づいてコマンドを受信し、取り出し、検出し、決定し、またはそれ以外に取得して、提示された一部のメディアコンテンツアイテムをビデオコンテンツとして公開し、共有し、またはそれ以外に投稿することを円滑に行うことができる。いくつかの事例では、ビデオファイルモジュール226は、次いで、一組の宣言命令に基づいてビデオファイルを生成することを円滑に行うことができる。ビデオファイルは、例えば、利用可能なローカルGPUリソースを利用するためにローカルに生成することができる。ここでも、開示された技術に関連する多くの変形または他の可能性があり得ることを理解されたい。
図3Aは、本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連する例示的なシナリオ300を示す。例示的なシナリオ300は、宣言命令に基づいてビデオコンテンツを動的に提供することに関連するインタフェース304を提示するように構成することができるコンピューティングデバイス(またはシステム)302を示す。
この例では、インタフェース304は、コンピューティングデバイス302のユーザが、コンピューティングデバイス302のローカルカメラロール内の画像および/またはビデオなどの一組のメディアコンテンツアイテム306から一部のメディアコンテンツアイテムを選択することを可能にすることができる。図示するように、ユーザは、例えば、これまでに一組のメディアコンテンツアイテム306から5個のメディアコンテンツアイテムを選択した。さらに、いくつかの実施形態では、ユーザが一部のメディアコンテンツアイテムを選択する順序を少なくとも部分的に利用して、一部内の各メディアコンテンツアイテムがビデオコンテンツを表現するために動的に提示される時期を決定することができる。多くの変形が可能である。
図3Bは、本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連する例示的なシナリオ320を示す。例示的なシナリオ320は、一部のメディアコンテンツアイテムが選択されるかまたは特定された後の、図3Aのコンピューティングデバイス302などのコンピューティングデバイス(またはシステム)322を示す。図3Bのこの例示的なシナリオ320では、コンピューティングデバイス322は、宣言命令に基づいてビデオコンテンツを動的に提供することに関連するインタフェース324を提示するように構成することができる。インタフェース324は、動的に提示されている一部のメディアコンテンツアイテムを表示して、ビデオコンテンツ326を表現するか、またはビデオコンテンツ326のように見えるようにすることができる。
さらに、図示のように、インタフェース324は、選択可能な一組のムード328をユーザに提供することができる。このシナリオ例320では、一組のムード328は、少なくとも幸福的なムード、希望的なムード、ノスタルジックなムード、冒険的なムードなどを含むことができる。開示の技術は、一組の中から特定のムードに関する選択(例えば、ユーザ選択、システム選択など)を取得することができる。選択された特定のムードは、一部がビデオコンテンツ326を表現するために、またはビデオコンテンツ326のように見えるように動的に提示されるときに再生されるサウンドトラックを決定または特定するために少なくとも部分的に利用することができる。本明細書のすべての例は例示目的で提供されていること、および開示された技術に関連する多くの変形が可能であることを理解されたい。
図4は、本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連する例示的な方法400を示す。特に明記しない限り、様々な実施形態の範囲内で、同様の順序または代替の順序で、または並行して実行される追加のステップ、より少ないステップ、または代替のステップがあり得ることを理解されたい。
ブロック402において、例示的な方法400は、一組のムードから1つのムードを特定するための第1の選択を取得することができる。ブロック404において、例示的な方法400は、一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するための第2の選択を取得することができる。ブロック406において、例示的な方法400は、第1の選択または第2の選択のうちの少なくとも1つに基づいてサウンドトラックを特定することができる。サウンドトラックは、一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムがサウンドトラックの再生中に提示される時期を決定するために利用されるデータと関連付けることができる。ブロック408において、例示的な方法400は、一部内の各メディアコンテンツアイテムがサウンドトラックの再生中に提示される方法を決定するために利用される一組の宣言命令を提供することができる。ブロック410において、例示的な方法400は、一組の宣言命令に基づいて一部のメディアコンテンツアイテムを動的に提示することができる。一部のメディアコンテンツアイテムは、サウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。
いくつかの実施形態では、上記の様々なオペレーションおよび/またはタスクは、開示された技術を利用するコンピューティングデバイス(またはシステム)においてローカルに実行することができる。いくつかの実施形態では、コンピューティングデバイス(またはシステム)から遠隔の1つまたは複数のサーバが、様々なオペレーションおよび/またはタスクの実行を支援するか、またはそれらの実行を円滑に行うことができる。さらに、場合によっては、グラフィックス、テキスト、アニメーション、モーションブラー、テクスチャ、フィルタ、および/または他の視覚的処置/効果/スタイルを、一部のメディアコンテンツアイテムのうちの少なくともいくつかとともに提示することができる。ここでも、多くの変形が可能である。
図5Aは、本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連する例示的な方法500を示す。説明したように、特に明記しない限り、様々な実施形態の範囲内で、同様の順序または代替の順序で、または並行して実行される追加のステップ、より少ないステップ、または代替のステップがあり得ることを理解されたい。
ブロック502において、例示的な方法500は、変更された一部のメディアコンテンツアイテムが特定されるように、第2の選択に対する変更を受信することができる。ブロック504において、例示的な方法500は、変更された一部のメディアコンテンツアイテムに基づいて変更されたサウンドトラックを特定することができる。ブロック506において、例示的な方法500は、変更された一部内の各メディアコンテンツアイテムが、変更されたサウンドトラックの再生中に提示される方法を決定するために利用される変更された一組の宣言命令を提供することができる。ブロック508において、例示的な方法500は、変更された一組の宣言命令に基づいて変更された一部のメディアコンテンツアイテムを動的に提示することができる。変更された一部のメディアコンテンツアイテムは、変更されたサウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。
図5Bは、本開示の実施形態による、宣言命令に基づいてビデオコンテンツを動的に提供することに関連した例示的な方法520を示す。ここでも、特に明記しない限り、様々な実施形態の範囲内で、同様の順序または代替の順序で、または並行して、追加のステップ、より少ないステップ、または代替のステップが実行され得ることが企図される。
ブロック522において、例示的な方法520は、変更されたムードが特定されるように、第1の選択に対する変更を受信することができる。ブロック524において、例示的な方法520は、変更されたムードに基づいて変更されたサウンドトラックを特定することができる。ブロック526において、例示的な方法520は、一部内の各メディアコンテンツアイテムが変更されたサウンドトラックの再生中に提示される方法を決定するために利用される変更された一組の宣言命令を提供することができる。ブロック528において、例示的な方法520は、変更された一組の宣言命令に基づいて一部のメディアコンテンツアイテムを動的に提示することができる。一部のメディアコンテンツアイテムは、変更されたサウンドトラックの再生中に提示することができ、かつビデオコンテンツを表現するために提示することができる。
本開示の様々な実施形態に関連する多くの他の用途、適用、特徴、可能性、および/または変形があり得ることが企図されている。例えば、様々な実施形態は、場合によっては、OPENGL技術を利用することができる。別の例では、ユーザは、場合によっては、開示された技術を利用するためにオプトインするかどうかを選択することができる。開示された技術は、例えば、様々なプライバシー設定、プリファレンス、および構成が確実に維持され、個人情報が漏洩するのを防ぐことができる。さらなる例では、本開示の様々な実施形態は、経時的に学習、改善、および/または改良することができる。
ソーシャルネットワーキングシステム − 例示的な実施形態
図6は、本開示の一実施形態による、向上したビデオ符号化のための様々な実施形態で利用され得る例示的なシステム600のネットワーク図を示す。システム600は、1つまたは複数のユーザデバイス610と、1つまたは複数の外部システム620と、ソーシャルネットワーキングシステム(ソーシャルネットワーキングサービス)630と、ネットワーク650とを含む。一実施形態では、前述の実施形態との関連で論じられたソーシャルネットワーキングサービス、プロバイダ、および/またはシステムは、ソーシャルネットワーキングシステム630として実装されてよい。例示の目的のために、図6によって示される、システム600の実施形態は、単一の外部システム620と、単一のユーザデバイス610とを含む。ただし、他の実施形態において、システム600は、より多くのユーザデバイス610、および/または、より多くの外部システム620を含んでもよい。特定の実施形態において、ソーシャルネットワーキングシステム630は、ソーシャルネットワークプロバイダによって運営されるのに対して、外部システム620は、異なるエンティティによって運営され得るという点で、ソーシャルネットワーキングシステム630とは別個のものである。しかしながら、様々な実施形態において、ソーシャルネットワーキングシステム630および外部システム620は、共に動作して、ソーシャルネットワーキングシステム630のユーザ(またはメンバー)に対してソーシャルネットワーキングサービスを提供する。この意味において、ソーシャルネットワーキングシステム630は、外部システム620などの他のシステムがインターネット上のユーザに対してソーシャルネットワーキングサービスおよび機能を提供するために使用し得るプラットフォームまたはバックボーンを提供する。いくつかの実施形態では、ソーシャルネットワーキングシステム630は、ソーシャルメディアシステム(またはサービス)を含むか、またはソーシャルメディアシステム(またはサービス)に対応することができる。
ユーザデバイス610は、ユーザから入力を受信し、ネットワーク650を通じてデータを送受信することができる1つまたは複数のコンピューティングデバイス(またはコンピューティングシステム)を備える。一実施形態において、ユーザデバイス610は、例えば、マイクロソフトウィンドウズ(登録商標)と互換性のあるオペレーティングシステム(OS)、Apple OS X、および/またはLinux(登録商標)ディストリビューションを実行する従来のコンピュータシステムである。別の実施形態において、ユーザデバイス610は、スマートフォン、タブレット、携帯情報端末(PDA:personal digital assistant)、携帯電話、ラップトップコンピュータ、ウェアラブルデバイス(例えば、眼鏡、腕時計、ブレスレット、その他)、カメラ、機器、その他などのコンピュータ機能を有するコンピューティングデバイスまたはデバイスであってもよい。ユーザデバイス610は、ネットワーク650を通じて通信するように構成される。ユーザデバイス610は、アプリケーション、例えば、ユーザデバイス610のユーザがソーシャルネットワーキングシステム630と対話することを可能にするブラウザアプリケーションを実行することができる。別の実施形態において、ユーザデバイス610は、iOSおよびANDROID(登録商標)などの、ユーザデバイス610のネイティブオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース(API)を通じてソーシャルネットワーキングシステム630を対話する。ユーザデバイス610は、ネットワーク650を通じて外部システム620およびソーシャルネットワーキングシステム630と通信するように構成される。ネットワーク650は、有線通信システムおよび/または無線通信システムを使用する、ローカルエリアネットワークおよび/または広域ネットワークの任意の組み合わせを備え得る。
1つの実施形態において、ネットワーク650は、標準的な通信技術およびプロトコルを使用する。したがって、ネットワーク650は、イーサネット(登録商標)、802.11(例えば、WiFi)、マイクロ波アクセスのための世界的相互運用性(WiMAX:worldwide interoperability for microwave access)、3G、4G、CDMA、GSM(登録商標)、LTE、デジタル加入者線(DSL:digital subscriber line)等などの技術を使用するリンクを含み得る。同様に、ネットワーク650上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング(MPLS:multiprotocol label switching)、送信制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP:simple mail transfer protocol)、ファイル転送プロトコル(FTP)などを含み得る。ネットワーク650上で交換されるデータは、ハイパーテキストマークアップ言語(HTML)および拡張マークアップ言語(XML)を含む技術および/またはフォーマットを使用して表現され得る。また、全部または一部のリンクは、セキュアソケットレイヤ(SSL)、トランスポートレイヤセキュリティ(TLS)、およびインターネットプロトコルセキュリティ(IPsec)などの従来の暗号化技術を使用して暗号化され得る。
1つの実施形態において、ユーザデバイス610は、外部システム620から、およびソーシャルネットワーキングシステム630から受信されるマークアップ言語文書614を、ブラウザアプリケーション612を使用して処理することによって、外部システム620からのコンテンツおよび/またはソーシャルネットワーキングシステム630からのコンテンツを表示し得る。マークアップ言語文書614は、コンテンツと、そのコンテンツのフォーマッティングまたは表示方法を記述する1つまたは複数の命令とを識別する。マークアップ言語文書614内に含まれる命令を実行することによって、ブラウザアプリケーション612は、マークアップ言語文書614によって記述されたフォーマットまたは表示方法を使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書614は、外部システム620およびソーシャルネットワーキングシステム630から得られたテキストおよび/または画像データを含む複数のフレームを有するウェブページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書614は、拡張マークアップ言語(XML)データ、拡張ハイパーテキストマークアップ言語(XHTML)データ、または、他のマークアップ言語データを含むデータファイルを備える。また、マークアップ言語文書614は、外部システム620とユーザデバイス610との間のデータ交換を容易にするためのジャバスクリプトオブジェクトノーテーション(JSON:JavaScript(登録商標)Object Notation)データ、パディング付きのJSON(JSONP:JSON with padding)データ、およびジャバスクリプトデータを含み得る。ユーザデバイス610上のブラウザアプリケーション612は、ジャバスクリプトコンパイラを使用して、マークアップ言語文書614を復号し得る。
マークアップ言語文書614は、FLASH(商標)アプリケーションまたはUnity(商標)アプリケーション、SilverLight(商標)アプリケーションフレームワーク等などの、アプリケーションまたはアプリケーションフレームワークも含み、または、これらに対してもリンクし得る。
1つの実施形態において、ユーザデバイス610は、ユーザデバイス610のユーザがソーシャルネットワーキングシステム630へログインしたかを示すデータを含む、1つまたは複数のクッキー616も含む。クッキー616は、ソーシャルネットワーキングシステム630からユーザデバイス610へ通信されるデータのカスタム化を可能にし得る。
外部システム620は、1つまたは複数のウェブページ622a、622bを含む、1つまたは複数のウェブサーバを含む。1つまたは複数のウェブページ622a、622bは、ネットワーク650を使用して、ユーザデバイス610へ通信される。外部システム620は、ソーシャルネットワーキングシステム630とは別個である。例えば、外部システム620は、第1のドメインに対して関連付けられるが、ソーシャルネットワーキングシステム630は、別個のソーシャルネットワーキングドメインに対して関連付けられる。外部システム620に含まれるウェブページ622a、622bは、コンテンツを識別し、識別されたコンテンツのフォーマッティングおよび表示方法を特定する命令を含むマークアップ言語文書614を備える。
ソーシャルネットワーキングシステム630は、複数のユーザを含み、ソーシャルネットワークのユーザに対して、ソーシャルネットワークの他のユーザと通信および対話するための能力を提供する、ソーシャルネットワークのための1つまたは複数のコンピューティングデバイスを含む。さらに詳細に説明されるように、ソーシャルネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表現され得る。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むが、これらに限定されない、他のデータ構造も、ソーシャルネットワークを表現するために使用され得る。ソーシャルネットワーキングシステム630は、オペレータによって監督、管理、または制御されてよい。ソーシャルネットワーキングシステム630のオペレータは、ソーシャルネットワーキングシステム630内でコンテンツを管理し、ポリシを統制し、使用メトリクスを収集するための、人間、自動化されたアプリケーション、または一連のアプリケーションであってよい。任意のタイプのオペレータが使用されてよい。
ユーザは、ソーシャルネットワーキングシステム630に加入し、次いで、そのユーザがつなげられることを望む、ソーシャルネットワーキングシステム630の任意の数の他のユーザへのつながりを追加し得る。本明細書において、「友達」という用語は、ユーザがソーシャルネットワーキングシステム630を通じてつながり、関連、または関係を形成した、ソーシャルネットワーキングシステム630の任意の他のユーザに及ぶ。例えば、一実施形態において、ソーシャルネットワーキングシステム630内のユーザが、ソーシャルグラフ内のノードとして表現される場合、「友達」という用語は、2つのユーザノード間に形成され、かつ、2つのユーザノードを直接的に接続するエッジを指し得る。
つながりは、ユーザによって明示的に追加されても、または、ユーザの共通の特性(例えば、同じ教育機関の卒業生であるユーザ)に基づいて、ソーシャルネットワーキングシステム630によって自動的に作成されてもよい。例えば、第1のユーザは、友達になりたい特定の他のユーザを具体的に選択する。ソーシャルネットワーキングシステム630におけるつながりは、通常は双方向であるが、双方向である必要はなく、そのため、「ユーザ」および「友達」という用語は、枠組みに依存する。ソーシャルネットワーキングシステム630のユーザ間のつながりは、通常は、双務的(「二方向」)または「相互的」であるが、つながりは、片務的、または「一方向」であってもよい。例えば、ボブおよびジョーの両者が、ソーシャルネットワーキングシステム630のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。他方で、ボブは、ジョーによってソーシャルネットワーキングシステム630へ通信されたデータを見るためにジョーとつながることを欲するが、ジョーは、相互的なつながりを形成することを欲しない場合、片務的なつながりが確立され得る。ユーザ間のつながりは、直接的なつながりであり得る。ただし、ソーシャルネットワーキングシステム630のいくつかの実施形態は、つながりが、1つまたは複数のつながりのレベルまたは分離度を通じた間接的なものとなることを可能にする。
ユーザ間のつながりを確立および維持し、ユーザ間の対話を可能にすることに加えて、ソーシャルネットワーキングシステム630は、ソーシャルネットワーキングシステム630によってサポートされる様々なタイプのアイテムに対してアクションを行うための能力をユーザに対して提供する。こうしたアイテムは、ソーシャルネットワーキングシステム630のユーザが所属し得るグループまたはネットワーク(すなわち、人々、エンティティ、およびコンセプトのソーシャルネットワーク)、ユーザが興味を持ち得るイベントまたはカレンダー入力、ユーザがソーシャルネットワーキングシステム630を通じて使用し得るコンピュータベースのアプリケーション、ソーシャルネットワーキングシステム630によって提供されるサービスを通じてまたはソーシャルネットワーキングシステム630を通じてユーザがアイテムを購入または販売することを可能にする取引、ならびにユーザがソーシャルネットワーキングシステム630内外で実行し得る広告との対話を含み得る。これらは、ユーザがソーシャルネットワーキングシステム630上で作用を与え得るアイテムのわずかな例にすぎず、多くの他の例が可能である。ユーザは、ソーシャルネットワーキングシステム630において、または、ソーシャルネットワーキングシステム630とは別個の外部システム620もしくはネットワーク650を通じてソーシャルネットワーキングシステム630に対して結合される外部システム620において表現されることが可能なありとあらゆるものと対話し得る。
ソーシャルネットワーキングシステム630は、多様なエンティティとリンクすることも可能である。例えば、ソーシャルネットワーキングシステム630は、ユーザが互いに対話すること、および、API、ウェブサービス、または他の通信チャネルを通じて外部システム620または他のエンティティと対話することを可能にする。ソーシャルネットワーキングシステム630は、複数のエッジによって相互接続された複数のノードを備える「ソーシャルグラフ」を生成および維持する。ソーシャルグラフ内の各ノードは、別のノードに対して作用を与え得るエンティティおよび/または別のノードによって作用を与えられ得るエンティティを表現し得る。ソーシャルグラフは、様々なタイプのノードを含み得る。ノードのタイプの例は、ユーザ、人間以外のエンティティ、コンテンツアイテム、ウェブページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャルネットワーキングシステム630内のオブジェクトによって表現され得る任意の他のものを含む。ソーシャルグラフ内の2つのノード間のエッジは、ノード関係から、またはノードのうちの一方によって他方に対して実行されたアクションから生じ得る、2つのノード間の特定の種類のつながり、または関連を表現し得る。いくつかのケースでは、ノード間のエッジは、重み付けされ得る。エッジの重みは、ノード間のつながりまたは関連の強度などの、そのエッジに対して関連付けられている属性を表現し得る。異なるタイプのエッジが、異なる重みと共に提供され得る。例えば、あるユーザが別のユーザに対して「いいね」を表明するときに作成されるエッジには、ある重みが与えられてよく、ユーザが別のユーザと友達になるときに作成されるエッジには、異なる重みが与えられてよい。
例として、第1のユーザが第2のユーザを友達として識別した場合、第1のユーザを表すノードと、第2のユーザを表す第2のノードとを接続するソーシャルグラフ中のエッジが生成される。様々なノードが互いに関係するかまたは対話するのに伴い、ソーシャルネットワーキングシステム630は、関係および対話を反映するように、様々なノードを接続するエッジを修正する。
ソーシャルネットワーキングシステム630は、ユーザによるソーシャルネットワーキングシステム630との対話を高める、ユーザにより生成されたコンテンツも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム630に対して追加し、アップロードし、送信し、または「投稿し」得るあらゆるものを含み得る。例えば、ユーザは、ユーザデバイス610からソーシャルネットワーキングシステム630への投稿を通信する。投稿は、ステータスアップデートもしくは他の文字情報などのデータ、位置情報、写真などの画像、映像、リンク、音楽、または、他の同様のデータおよび/もしくはメディアを含み得る。コンテンツも、第三者によってソーシャルネットワーキングシステム630に対して追加され得る。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム630においてオブジェクトとして表現される。このようにして、ソーシャルネットワーキングシステム630のユーザは、様々な通信チャネルを通じて様々なタイプのテキストおよびコンテンツアイテムを投稿することによって、互いに通信することを促される。そのような通信は、ユーザ同士の対話を増加させ、ユーザがソーシャルネットワーキングシステム630と対話する頻度を増加させる。
ソーシャルネットワーキングシステム630は、ウェブサーバ632と、API要求サーバ634と、ユーザプロファイルストア636と、つながりストア638と、アクションロガー640と、アクティビティログ642と、認証サーバ644とを含む。本発明の一実施形態において、ソーシャルネットワーキングシステム630は、様々なアプリケーションのための追加的な構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワークインタフェース、セキュリティ機構、負荷分散装置、フェイルオーバサーバ、管理およびネットワーク操作コンソールなどの他の構成要素は、本システムの詳細を曖昧にしないように、図示されていない。
ユーザプロファイルストア636は、ユーザによって申告され、またはソーシャルネットワーキングシステム630によって推測された職歴、学歴、趣味または嗜好、住所などの経歴的情報、人口学的情報、および他のタイプの記述的情報を含む、ユーザアカウントに関する情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザプロファイルストア636内に記憶される。ソーシャルネットワーキングシステム630は、異なるユーザ間の1つまたは複数のつながりを記述するデータも、つながりストア638内に記憶する。つながり情報は、同様または共通の職歴、グループメンバーシップ、趣味、または学歴を有するユーザを示し得る。また、ソーシャルネットワーキングシステム630は、ユーザの他のユーザとの関係をユーザが特定することを可能にする、異なるユーザ間におけるユーザによって定義されたつながりを含む。例えば、ユーザによって定義されたつながりは、友達、同僚、パートナー等などの、ユーザの実生活の関係と並行する、他のユーザとの関係をユーザが生成することを可能にする。ユーザは、予め定義されたタイプのつながりから選択しても、またはユーザ自身のつながりタイプを必要に応じて定義してもよい。非人間エンティティ、バケット、クラスタセンタ、画像、興味、ページ、外部システム、コンセプト等などの、ソーシャルネットワーキングシステム630内の他のノードとのつながりも、つながりストア638内に記憶される。
ソーシャルネットワーキングシステム630は、ユーザが対話し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザプロファイルストア636およびつながりストア638は、ソーシャルネットワーキングシステム630によって維持されるオブジェクトの対応するタイプのインスタンスを記憶する。各オブジェクトタイプは、オブジェクトのタイプに適した情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロファイルストア636は、ユーザのアカウントおよびユーザのアカウントに関連した情報を記述するのに適したフィールドを有するデータ構造を含む。特定のタイプの新たなオブジェクトが作成される場合、ソーシャルネットワーキングシステム630は、対応するタイプの新たなデータ構造を初期化し、その新たなデータ構造に対して一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトに対してデータを追加することを開始する。これは、例えば、ユーザがソーシャルネットワーキングシステム630のユーザになった場合に発生し、ソーシャルネットワーキングシステム630は、ユーザプロファイルストア636内にユーザプロファイルの新たなインスタンスを生成し、ユーザアカウントに対して一意の識別子を割り当て、ユーザによって提供される情報をユーザアカウントのフィールドへ投入し始める。
つながりストア638は、他のユーザに対するユーザのつながり、外部システム620に対するつながり、または他のエンティティに対するつながりを記述するのに適したデータ構造を含む。つながりストア638は、つながりタイプもユーザのつながりと関連付け得る。つながりタイプは、ユーザのプライバシー設定と共に使用されて、ユーザに関する情報に対するアクセスを規制し得る。本発明の一実施形態において、ユーザプロファイルストア636およびつながりストア638は、連合データベースとして実装され得る。
つながりストア638、ユーザプロファイルストア636、およびアクティビティログ642内に記憶されるデータは、ノードを使用して、ノードを接続する様々なオブジェクトおよびエッジを識別して、異なるオブジェクト間の関係を識別するソーシャルグラフをソーシャルネットワーキングシステム630が生成することを可能にする。例えば、第1のユーザが、ソーシャルネットワーキングシステム630内で第2のユーザとのつながりを確立する場合、ユーザプロファイルストア636からの第1のユーザおよび第2のユーザのユーザアカウントは、ソーシャルグラフ内のノードとして動作し得る。つながりストア638によって記憶される、第1のユーザと第2のユーザとの間のつながりは、第1のユーザおよび第2のユーザに対して関連付けられるノード間のエッジである。この例を続けると、第2のユーザは、次いで、第1のユーザに対して、ソーシャルネットワーキングシステム630内でメッセージを送信し得る。メッセージを送信するアクションは、第1のユーザおよび第2のユーザを表現する、ソーシャルグラフ内の2つのノード間の別のエッジであり、メッセージを送信するアクションは、記憶され得る。また、メッセージ自体が、第1のユーザを表現するノードおよび第2のユーザを表現するノードに対して接続される別のノードとして、ソーシャルグラフにおいて識別され、ソーシャルグラフに含まれ得る。
別の例において、第1のユーザは、ソーシャルネットワーキングシステム630によって維持される画像において(または、代替的に、ソーシャルネットワーキングシステム630の外部の別のシステムによって維持される画像において)第2のユーザをタグ付けし得る。画像は、それ自体がソーシャルネットワーキングシステム630内のノードとして表現され得る。このタグ付けアクションは、ユーザの各々と画像との間にエッジを作成するだけでなく、第1のユーザと第2のユーザとの間のエッジも作成し得る。画像もソーシャルグラフ内のノードである。また別の例において、ユーザが、イベントへ参加することを確かめる場合、そのユーザおよびそのイベントは、ユーザプロファイルストア636から取得されるノードであり、そのイベントへの参加は、アクティビティログ642から得られ得るノード間のエッジである。ソーシャルグラフを生成および維持することによって、ソーシャルネットワーキングシステム630は、多くの異なるタイプのオブジェクトを記述するデータ、ならびに、それらのオブジェクト間の対話およびつながりを含み、社会的に関連する情報の豊富なソースを提供する。
ウェブサーバ632は、ソーシャルネットワーキングシステム630を、ネットワーク650を通じて、1つもしくは複数のユーザデバイス610および/または1つもしくは複数の外部システム620に対してリンクする。ウェブサーバ632は、ウェブページ、およびJava(登録商標)、JavaScript、Flash、XMLなどの他のウェブ関連コンテンツを供給する。ウェブサーバ632は、メールサーバを含み、または、ソーシャルネットワーキングシステム630と1つもしくは複数のユーザデバイス610との間のメッセージを受信およびルーティングするための他のメッセージング機能を含み得る。メッセージは、インスタントメッセージ、キューメッセージ(例えば、電子メール)、テキストおよびSMSメッセージ、または任意の他の適切なメッセージングフォーマットであり得る。
API要求サーバ634は、1つまたは複数の外部システム620およびユーザデバイス610が、1つまたは複数のAPI関数を呼び出すことによって、ソーシャルネットワーキングシステム630からのアクセス情報を呼び出すことを可能にする。API要求サーバ634は、外部システム620が、APIを呼び出すことによって、ソーシャルネットワーキングシステム630に対して情報を送信することも可能にし得る。外部システム620は、1つの実施形態において、ネットワーク650を通じてソーシャルネットワーキングシステム630へAPI要求を送信し、API要求サーバ634は、そのAPI要求を受信する。API要求サーバ634は、API要求に対して関連付けられているAPIを呼び出すことによって要求を処理して、適当な応答を生成する。API要求サーバ634は、その適当な応答を、ネットワーク650を通じて外部システム620へ通信する。例えば、API要求に応答して、API要求サーバ634は、外部システム620に対してログインしたユーザのつながりなどの、ユーザに対して関連付けられているデータを収集し、収集されたデータを外部システム620へ通信する。別の実施形態において、ユーザデバイス610は、外部システム620と同じ手法で、APIを通じてソーシャルネットワーキングシステム630と通信する。
アクションロガー640は、ソーシャルネットワーキングシステム630内での、および/またはソーシャルネットワーキングシステム630外でのユーザアクションに関する通信をウェブサーバ632から受信することが可能である。アクションロガー640は、ユーザアクションに関する情報をアクティビティログ642へ投入し、ソーシャルネットワーキングシステム630の内部で、およびソーシャルネットワーキングシステム630の外部で、そのユーザによって行われた様々なアクションをソーシャルネットワーキングシステム630が発見することを可能にする。特定のユーザが、ソーシャルネットワーキングシステム630上の別のノードに関して行う任意のアクションは、アクティビティログ642内または同様のデータベースもしくは他のデータレポジトリ内で維持される情報を通じて、各ユーザのアカウントに対して関連付けられ得る。識別および記憶される、ソーシャルネットワーキングシステム630内でユーザによって行われるアクションの例は、例えば、別のユーザに対するつながりを追加すること、別のユーザへメッセージを送信すること、別のユーザからのメッセージを読むこと、別のユーザに対して関連付けられるコンテンツを視聴すること、別のユーザによって投稿されたイベントに参加すること、画像を投稿すること、画像を投稿しようと試行すること、または、別のユーザもしくは別のオブジェクトと対話する他のアクションを含み得る。ユーザが、ソーシャルネットワーキングシステム630内でアクションを行う場合、そのアクションは、アクティビティログ642内に記録される。一実施形態において、ソーシャルネットワーキングシステム630は、アクティビティログ642をエントリのデータベースとして維持する。アクションが、ソーシャルネットワーキングシステム630内で行われる場合、そのアクションについてのエントリが、アクティビティログ642に対して追加される。アクティビティログ642は、アクションログと称され得る。
また、ユーザアクションは、ソーシャルネットワーキングシステム630とは別個の外部システム620などの、ソーシャルネットワーキングシステム630の外部のエンティティ内で発生するコンセプトおよびアクションに対して関連付けられ得る。例えば、アクションロガー640は、ユーザによる外部システム620との対話を記述するデータを、ウェブサーバ632から受信し得る。この例において、外部システム620は、ソーシャルグラフにおける構造化されたアクションおよびオブジェクトに従って、ユーザによる対話を報告する。
ユーザが外部システム620と対話するアクションの他の例は、ユーザが外部システム620もしくは別のエンティティにおいて興味を表現すること、外部システム620もしくは外部システム620内のウェブページ622aと議論するソーシャルネットワーキングシステム630に対してユーザがコメントを投稿すること、ユーザがソーシャルネットワーキングシステム630に対してユニフォームリソースロケータ(URL)もしくは外部システム620に対して関連付けられる他の識別子を投稿すること、ユーザが外部システム620に対して関連付けられるイベントへ参加すること、または、外部システム620に関連する、ユーザによる任意の他のアクションを含む。したがって、アクティビティログ642は、ソーシャルネットワーキングシステム630のユーザと、ソーシャルネットワーキングシステム630とは別個の外部システム620との間の対話を記述するアクションを含み得る。
認証サーバ644は、ソーシャルネットワーキングシステム630のユーザの1つまたは複数のプライバシー設定を強化する。ユーザのプライバシー設定は、ユーザに対して関連付けられる特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザに対して関連付けられる特定の情報の仕様、および情報が共有され得る1つまたは複数のエンティティの仕様を備える。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム620、または、その情報に潜在的にアクセスし得る任意のエンティティを含み得る。ユーザによって共有され得る情報は、プロフィール写真などのユーザアカウント情報、ユーザに対して関連付けられる電話番号、ユーザのつながり、つながりを追加すること、ユーザプロフィール情報を変更することなどのユーザによって行われるアクション等を備える。
プライバシー設定仕様は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき具体的な情報を識別し得る。プライバシー設定は、職場電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連情報の具体的なセットを識別する。代替的に、プライバシー設定は、ユーザに対して関連付けられる全ての情報に対して適用されてもよい。特定の情報にアクセスすることができるエンティティのセットの仕様も、様々なレベルの粒度で特定され得る。情報が共有され得るエンティティの様々なセットは、例えば、ユーザの全ての友達、友達の全ての友達、全てのアプリケーション、または全ての外部システム620を含み得る。1つの実施形態は、エンティティのセットの仕様がエンティティの一覧表を備えることを可能にする。例えば、ユーザは、一定の情報に対してアクセスすることを許可される外部システム620のリストを提供し得る。別の実施形態は、情報に対してアクセスすることを許可されない例外と共にエンティティのセットを仕様が備えることを可能にする。例えば、ユーザは、全ての外部システム620がユーザの職場情報に対してアクセスすることを許可し得るが、職場情報に対してアクセスすることを許可されない外部システム620のリストを特定し得る。一定の実施形態は、一定の情報に対してアクセスすることを許可されない例外のリストを「ブロックリスト」と呼ぶ。ユーザによって特定されるブロックリストに所属する外部システム620は、プライバシー設定において特定される情報に対してアクセスすることをブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組み合わせが可能である。例えば、全ての個人情報は、友達と共有され得るのに対して、全ての職場情報は、友達の友達と共有され得る。
認証サーバ644は、ユーザに対して関連付けられる一定の情報がユーザの友達、外部システム620、ならびに/または他のアプリケーションおよびエンティティによってアクセスされ得るかを決定するためのロジックを含む。外部システム620は、ユーザの職場電話番号などの、ユーザのより個人的かつ機密的な情報に対してアクセスするために、認証サーバ644からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ644は、別のユーザ、外部システム620、アプリケーション、または別のエンティティが、ユーザによって行われるアクションに関する情報を含む、ユーザに対して関連付けられる情報に対してアクセスすることを許可されているかを決定する。
いくつかの実施形態では、ユーザデバイス610は、動的ビデオコンテンツモジュール618を含むことができる。動的ビデオコンテンツモジュール618は、例えば、図1の動的ビデオコンテンツモジュール102として実施することができる。上述したように、多くの変形または他の可能性があることを理解されたい。例えば、動的ビデオコンテンツモジュール(または、その少なくとも1部)は、ソーシャルネットワーキングシステム630内に含まれるか、またはソーシャルネットワーキングシステム630内で実施することができる。動的ビデオコンテンツモジュール618の他の特徴は、動的ビデオコンテンツモジュール102に関連して本明細書で説明される。
ハードウェア実施形態
前述のプロセスおよび特徴は、多種多様なマシンおよびコンピュータシステムアーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装され得る。図7は、本発明に応じて本明細書に記載された1つまたは複数の実施形態を実装するために使用され得るコンピュータシステム700の例を例示する。コンピュータシステム700は、コンピュータシステム700に対して、本明細書において議論されるプロセスおよび特徴を実行させるための命令のセットを含む。コンピュータシステム700は、他のマシンへ接続され(例えば、ネットワーク化され)得る。ネットワーク化された配置において、コンピュータシステム700は、クライアント/サーバネットワーク環境内のサーバマシンもしくはクライアントマシンの資格において動作し、または、ピアツーピア(もしくは分散)ネットワーク環境内のピアマシンとして動作し得る。本発明の一実施形態において、コンピュータシステム700は、ソーシャルネットワーキングシステム630、ユーザデバイス610、外部システム620、またはこれらの構成要素であってもよい。本発明の一実施形態において、コンピュータシステム700は、ソーシャルネットワーキングシステム630の全てまたは部分を構成する多くのサー間のうちの1つのサーバであってもよい。
コンピュータシステム700は、プロセッサ702と、キャッシュ704と、コンピュータ読取可能な媒体上に記憶され、本明細書において説明されるプロセスおよび特徴へ向けられた、1つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータシステム700は、高性能入出力(I/O)バス706と、標準I/Oバス708とを含む。ホストブリッジ710は、プロセッサ702を高性能I/Oバス706に対して結合する一方で、I/Oバスブリッジ712は、2つのバス706および708を互いに結合する。システムメモリ714および1つまたは複数のネットワークインタフェース716は、高性能I/Oバス706へ結合される。コンピュータシステム700は、ビデオメモリと、ビデオメモリに対して結合される表示デバイスとをさらに含んでもよい(図示せず)。マスストレージ718およびI/Oポート720は、標準I/Oバス708へ結合される。コンピュータシステム700は、バス708に対して結合される、キーボードおよびポインティングデバイス、表示デバイス、または他の入出力デバイス(図示せず)を随意的に含んでもよい。全体的に、これらの要素は、カリフォルニア州サンタクララのインテルコーポレーション社(Intel Corporation)によって製造されるx86互換性のあるプロセッサ、カリフォルニア州サニーベルのアドバンストマイクロデバイス社(AMD:Advanced Micro Devices,Inc)によって製造されるx86互換性のあるプロセッサ、および任意の他の適切なプロセッサを含むが、これらに限定されない、広範なカテゴリのコンピュータハードウェアシステムを表現することが意図される。
オペレーティングシステムは、ソフトウェアアプリケーション(図示せず)へのデータの入力およびソフトウェアアプリケーションからのデータの出力を含む、コンピュータシステム700の動作を管理および制御する。オペレーティングシステムは、システム上で実行されているソフトウェアアプリケーションと、システムのハードウェア構成要素との間のインタフェースを提供する。任意の適切なオペレーティングシステム、例えば、LINUXオペレーティングシステム、カリフォルニア州クパチーノのアップルコンピュータ社(Apple Computer,Inc.)から市販されているアップルマッキントッシュオペレーティングシステム、UNIX(登録商標)オペレーティングシステム、マイクロソフト(登録商標)ウィンドウズ(登録商標)オペレーティングシステム、BSDオペレーティングシステム等などが使用され得る。他の実装も可能である。
コンピュータシステム700の要素は、下記においてより詳細に説明される。具体的には、ネットワークインタフェース716は、コンピュータシステム700と、幅広いネットワークのうちの任意のもの、例えば、イーサネット(例えば、IEEE802.3)ネットワーク、バックプレーン等などとの間の通信を提供する。マスストレージ718は、上記に識別されたそれぞれのコンピューティングシステムによって実装される上述されたプロセスおよび特徴を実行するためのデータおよびプログラミング命令のための永続的なストレージを提供するのに対して、システムメモリ714(例えば、DRAM)は、プロセッサ702によって実行される場合のデータおよびプログラミング命令のための一時的なストレージを提供する。I/Oポート720は、コンピュータシステム700へ結合され得る付加的な周辺デバイス間の通信を提供する、1つまたは複数のシリアル通信ポートおよび/またはパラレル通信ポートであり得る。
コンピュータシステム700は、多様なシステムアーキテクチャを含むことができ、コンピュータシステム700の様々な構成要素は、再配置されてもよい。例えば、キャッシュ704は、プロセッサ702と共にチップ上に実装されてもよい。代替的に、キャッシュ704およびプロセッサ702は、「プロセッサモジュール」としてまとめられて、プロセッサ702が「プロセッサコア」と称されてもよい。さらに、本発明の一定の実施形態は、上記構成要素の全部を必要としなくても、または、含まなくてもよい。例えば、標準I/Oバス708へ結合される周辺デバイスは、高性能I/Oバス706へ結合されてもよい。また、いくつかの実施形態において、単一のバスのみが存在して、コンピュータシステム700の構成要素が、その単一のバスへ結合されてもよい。さらに、コンピュータシステム700は、付加的なプロセッサ、記憶デバイス、またはメモリなどの付加的な構成要素を含んでもよい。
一般に、本明細書において説明されるプロセスおよび特徴は、オペレーティングシステムの一部もしくは特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、または「プログラム」と称される一連の命令として実装され得る。例えば、1つまたは複数のプログラムは、本明細書において説明される具体的なプロセスを実行するために使用され得る。プログラムは、典型的には、1つまたは複数のプロセッサによって読み出され、実行される場合に、コンピュータシステム700に対して、本明細書において説明されるプロセスおよび特徴を実行するための動作を実行させる、1つまたは複数の命令を、コンピュータシステム700内の様々なメモリおよび記憶デバイスにおいて備える。本明細書において説明されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア(例えば、特定用途向け集積回路)、または、これらの任意の組み合わせにおいて実装され得る。
1つの実施形態において、本明細書において説明されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータシステム700によって実行される一連の実行可能なモジュールとして実装される。前述のモジュールは、ハードウェア、コンピュータ読取可能な媒体(もしくはマシン読取可能な媒体)上に記憶される実行可能なモジュール、または、両者の組み合わせによって実現され得る。例えば、モジュールは、プロセッサ702などの、ハードウェアシステム内のプロセッサによって実行されるべき複数の命令または一連の命令を備え得る。まず、一連の命令は、マスストレージ718などの記憶デバイス上に記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ読取可能な記憶媒体上に記憶されてもよい。さらに、一連の命令は、局所的に記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶デバイスからネットワークインタフェース716を通じて受信されてもよい。命令は、マスストレージ718などの記憶デバイスからシステムメモリ714内へコピーされ、次いで、プロセッサ702によってアクセスされ、実行される。様々な実施形態において、1つまたは複数のモジュールは、並列処理環境内の複数のサーバなどの、1つまたは複数の位置における、1つまたは複数のプロセッサによって実行され得る。
コンピュータ読取可能な媒体の例は、揮発性メモリデバイスおよび不揮発性メモリデバイスなどの記録可能なタイプの媒体、ソリッドステートメモリ、フロッピー(登録商標)ディスクおよび他の取り外し可能なディスク、ハードディスクドライブ、磁気媒体、光ディスク(例えば、コンパクトディスク読取専用メモリ(CD ROMS)、デジタル多用途ディスク(DVD))、他の同様の非一時的で(もしくは一時的で)、有形の(もしくは無形の)記憶媒体、または、本明細書において説明されるプロセスおよび特徴のうちの任意の1つもしくは複数を実行すべく、コンピュータシステム700による実行のために一連の命令を記憶し、符号化し、もしくは担持するのに適切な任意のタイプの媒体を含むが、これらに限定されない。
説明の目的のために、多くの具体的な詳細が、本説明の完全な理解を提供するために述べられている。しかしながら、こうした具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。いくつかの例において、モジュール、構造、プロセス、特徴、およびデバイスは、本説明を曖昧にすることを回避するために、ブロック図の形式で示される。他の例において、機能ブロック図およびフロー図は、データおよび論理フローを表現するために示される。ブロック図およびフロー図の構成要素(例えば、モジュール、ブロック、構造、デバイス、特徴等)は、本明細書において明示的に説明および図示されたような手法以外の手法で、様々に組み合わされ、分離され、除去され、順序を並べ替えられ、置換されてもよい。
この明細書における、「1つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書内の様々な部分における「1つの実施形態において」または「別の実施形態」という句の出現は、必ずしも全て同じ実施形態に言及するものとは限らず、別個の実施形態または代替的な実施形態は、他の実施形態と相互排他的ではない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が説明され、様々な特徴は、いくつかの実施形態において様々に組み合わされ、含まれ得るが、他の実施形態においては様々に省略され得る。同様に、いくつかの実施形態にとっては選好事項または要件であり得るが、他の実施形態にとっては選好事項または要件ではない、様々な特徴が説明される。さらに、本明細書において「基づく」に対する参照は、「少なくとも部分的に基づく」、「の少なくとも一部/一部に基づく」、「少なくともその一部/一部が基づく」、および/またはそれらの任意の組み合わせを意味することができる。
本明細書において使用される文言は、主に、読みやすさと教育的目的のために選択されており、発明の主題の輪郭を描くため、または境界線を描くために選択されたものではない。そのため、本発明の範囲は、この詳細な説明によって限定されるのではなく、むしろ、本明細書に基づく出願について発行される任意の請求項によって限定されることが意図される。したがって、本発明の実施形態の開示は、本発明の範囲の例示とはなるが、限定とはならないことが意図され、本発明の範囲は、下記の特許請求の範囲において述べられる。

Claims (20)

  1. コンピュータが実施する方法であって、
    コンピューティングシステムが、一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するための第1の選択を取得するステップと、
    前記コンピューティングシステムが、一組のムードから1つのムードを特定するための第2の選択を取得するステップと、
    前記コンピューティングシステムが、前記第1の選択または前記第2の選択のうちの少なくとも1つに基づいてサウンドトラックを特定するステップと、前記サウンドトラックは、前記サウンドトラックの再生中に前記一部のメディアコンテンツの各メディアコンテンツアイテムが提示される時期を決定するのに利用されるデータに関連付けられ、
    前記コンピューティングシステムが、前記サウンドトラックの再生中に前記一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される一組の宣言命令を提供するステップと、
    前記コンピューティングシステムが、前記一組の宣言命令に基づいて前記一部のメディアコンテンツアイテムを動的に提示するステップとを含み、前記一部のメディアコンテンツアイテムは、前記サウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、コンピュータが実施する方法。
  2. 変更された一部のメディアコンテンツアイテムが特定されるように前記第1の選択に対する変更を受信するステップと、
    前記変更された一部のメディアコンテンツアイテムに基づいて変更されたサウンドトラックを特定するステップと
    前記変更されたサウンドトラックの再生中に変更された一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令を提供するステップと、
    前記変更された一組の宣言命令に基づいて前記変更された一部のメディアコンテンツアイテムを動的に提示するステップとをさらに含み、前記変更された一部のメディアコンテンツアイテムは、前記変更されたサウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、請求項1に記載のコンピュータが実施する方法。
  3. 変更されたムードが特定されるように前記第2の選択に対する変更を受信するステップと、
    前記変更されたムードに基づいて変更されたサウンドトラックを特定するステップと、
    前記変更されたサウンドトラックの再生中に一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令を提供するステップと、
    前記変更された一組の宣言命令に基づいて前記一部のメディアコンテンツアイテムを動的に提示するステップとをさらに含み、前記一部のメディアコンテンツアイテムは、前記変更されたサウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、請求項1に記載のコンピュータが実施する方法。
  4. 前記データは、前記サウンドトラックに適用されたビート検出プロセスに基づいて特定された1つまたは複数のビートに関する情報を含む、請求項1に記載のコンピュータが実施する方法。
  5. 前記サウンドトラックを特定するステップは、前記一部のメディアコンテンツアイテム内のメディアコンテンツアイテムの量に基づいて特有のバージョンのサウンドトラックを特定することを含み、前記特有のバージョンのサウンドトラックは、前記一部のメディアコンテンツアイテム内のメディアコンテンツアイテムの量と対応する特有の再生長を有する、請求項1に記載のコンピュータが実施する方法。
  6. 前記一組の宣言命令が、前記一部が提示されているときに、前記一部内の特定のメディアコンテンツアイテムから前記一部内の次のメディアコンテンツアイテムに移行する方法を決定するために利用される、請求項1のコンピュータが実施する方法。
  7. 前記一組の宣言命令は、前記一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムについて、1)個々の開始状態、2)個々の終了状態、3)前記個々の開始状態から前記個々の終了状態への個々の移動処理、4)前記個々の開始状態から前記個々の終了状態への個々のズーム処理、または5)前記個々の開始状態が前記個々の終了状態に移行する個々の期間のうちの少なくとも1つを指定する、請求項1に記載のコンピュータが実施する方法。
  8. 前記一組の宣言命令内の1つまたは複数の宣言命令は、前記一部のメディアコンテンツアイテムを動的に提示するために動的に実行される、請求項1に記載のコンピュータが実施する方法。
  9. 前記一部のメディアコンテンツアイテムは、ビデオファイルを生成することなく、ビデオコンテンツを表現するために提示される、請求項1に記載のコンピュータが実施する方法。
  10. 前記一組の宣言命令に基づいて提示された前記一部のメディアコンテンツアイテムをビデオコンテンツとして投稿するためのコマンドを取得するステップと、
    前記一組の宣言命令に基づいてビデオファイルを生成するステップとをさらに含む、請求項1に記載のコンピュータが実施する方法。
  11. システムであって、
    少なくとも1つのプロセッサと、
    命令を格納するメモリとを備え、前記命令は、前記少なくとも1つのプロセッサによる実行時に、前記システムに、
    一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するための第1の選択を取得するステップと、
    一組のムードから1つのムードを特定するための第2の選択を取得するステップと、
    前記第1の選択または前記第2の選択のうちの少なくとも1つに基づいてサウンドトラックを特定するステップと、前記サウンドトラックは、前記サウンドトラックの再生中に前記一部のメディアコンテンツの各メディアコンテンツアイテムが提示される時期を決定するのに利用されるデータに関連付けられ、
    前記サウンドトラックの再生中に前記一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される一組の宣言命令を提供するステップと、
    前記一組の宣言命令に基づいて前記一部のメディアコンテンツアイテムを動的に提示するステップとを実行させ、前記一部のメディアコンテンツアイテムは、前記サウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、システム。
  12. 前記命令は、前記システムに、
    変更された一部のメディアコンテンツアイテムが特定されるように前記第1の選択に対する変更を受信するステップと、
    前記変更された一部のメディアコンテンツアイテムに基づいて変更されたサウンドトラックを特定するステップと
    前記変更されたサウンドトラックの再生中に変更された一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令を提供するステップと、
    前記変更された一組の宣言命令に基づいて前記変更された一部のメディアコンテンツアイテムを動的に提示するステップとをさらに実行させ、前記変更された一部のメディアコンテンツアイテムは、前記変更されたサウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、請求項11に記載のシステム。
  13. 前記命令は、前記システムに、
    変更されたムードが特定されるように前記第2の選択に対する変更を受信するステップと、
    前記変更されたムードに基づいて変更されたサウンドトラックを特定するステップと、
    前記変更されたサウンドトラックの再生中に一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令を提供するステップと、
    前記変更された一組の宣言命令に基づいて前記一部のメディアコンテンツアイテムを動的に提示するステップとをさらに実行させ、前記一部のメディアコンテンツアイテムは、前記変更されたサウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、請求項11に記載のシステム。
  14. 前記一組の宣言命令が、前記一部が提示されているときに、前記一部内の特定のメディアコンテンツアイテムから前記一部内の次のメディアコンテンツアイテムに移行する方法を決定するために利用される、請求項11のシステム。
  15. 前記一組の宣言命令は、前記一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムについて、1)個々の開始状態、2)個々の終了状態、3)前記個々の開始状態から前記個々の終了状態への個々の移動処理、4)前記個々の開始状態から前記個々の終了状態への個々のズーム処理、または5)前記個々の開始状態が前記個々の終了状態に移行する個々の期間のうちの少なくとも1つを指定する、請求項11に記載のシステム。
  16. 命令を含む非一時的コンピュータ可読媒体であって、前記命令は、コンピューティングシステムの少なくとも1つのプロセッサによる実行時に、前記コンピューティングシステムに、
    一組のメディアコンテンツアイテムから一部のメディアコンテンツアイテムを特定するための第1の選択を取得するステップと、
    一組のムードから1つのムードを特定するための第2の選択を取得するステップと、
    前記第1の選択または前記第2の選択のうちの少なくとも1つに基づいてサウンドトラックを特定するステップと、前記サウンドトラックは、前記サウンドトラックの再生中に前記一部のメディアコンテンツの各メディアコンテンツアイテムが提示される時期を決定するのに利用されるデータに関連付けられ、
    前記サウンドトラックの再生中に前記一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される一組の宣言命令を提供するステップと、
    前記一組の宣言命令に基づいて前記一部のメディアコンテンツアイテムを動的に提示するステップとを実行させ、前記一部のメディアコンテンツアイテムは、前記サウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、非一時的コンピュータ可読媒体。
  17. 前記命令は、前記コンピューティングシステムに、
    変更された一部のメディアコンテンツアイテムが特定されるように前記第1の選択に対する変更を受信するステップと、
    前記変更された一部のメディアコンテンツアイテムに基づいて変更されたサウンドトラックを特定するステップと
    前記変更されたサウンドトラックの再生中に変更された一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令を提供するステップと、
    前記変更された一組の宣言命令に基づいて前記変更された一部のメディアコンテンツアイテムを動的に提示するステップとをさらに実行させ、前記変更された一部のメディアコンテンツアイテムは、前記変更されたサウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、請求項16に記載の非一時的コンピュータ可読媒体。
  18. 前記命令は、前記コンピューティングシステムに、
    変更されたムードが特定されるように前記第2の選択に対する変更を受信するステップと、
    前記変更されたムードに基づいて変更されたサウンドトラックを特定するステップと、
    前記変更されたサウンドトラックの再生中に一部内の各メディアコンテンツアイテムが提示される方法を決定するために利用される変更された一組の宣言命令を提供するステップと、
    前記変更された一組の宣言命令に基づいて前記一部のメディアコンテンツアイテムを動的に提示するステップとをさらに実行させ、前記一部のメディアコンテンツアイテムは、前記変更されたサウンドトラックの再生中に提示され、かつビデオコンテンツを表現するために提示される、請求項16に記載の非一時的コンピュータ可読媒体。
  19. 前記一組の宣言命令が、前記一部が提示されているときに、前記一部内の特定のメディアコンテンツアイテムから前記一部内の次のメディアコンテンツアイテムに移行する方法を決定するために利用される、請求項16の非一時的コンピュータ可読媒体。
  20. 前記一組の宣言命令は、前記一部のメディアコンテンツアイテム内の各メディアコンテンツアイテムについて、1)個々の開始状態、2)個々の終了状態、3)前記個々の開始状態から前記個々の終了状態への個々の移動処理、4)前記個々の開始状態から前記個々の終了状態への個々のズーム処理、または5)前記個々の開始状態が前記個々の終了状態に移行する個々の期間のうちの少なくとも1つを指定する、請求項16に記載の非一時的コンピュータ可読媒体。
JP2019511949A 2016-09-01 2016-09-02 宣言命令に基づいてビデオコンテンツを動的に提供するためのシステムおよび方法 Pending JP2019526987A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/255,076 2016-09-01
US15/255,076 US10734026B2 (en) 2016-09-01 2016-09-01 Systems and methods for dynamically providing video content based on declarative instructions
PCT/US2016/050284 WO2018044329A1 (en) 2016-09-01 2016-09-02 Systems and methods for dynamically providing video content based on declarative instructions

Publications (1)

Publication Number Publication Date
JP2019526987A true JP2019526987A (ja) 2019-09-19

Family

ID=61240661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019511949A Pending JP2019526987A (ja) 2016-09-01 2016-09-02 宣言命令に基づいてビデオコンテンツを動的に提供するためのシステムおよび方法

Country Status (7)

Country Link
US (1) US10734026B2 (ja)
JP (1) JP2019526987A (ja)
KR (1) KR20190039324A (ja)
CN (1) CN109891900A (ja)
AU (1) AU2016421906A1 (ja)
CA (1) CA3035527A1 (ja)
WO (1) WO2018044329A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JOP20180040A1 (ar) 2017-04-20 2019-01-30 Gilead Sciences Inc مثبطات pd-1/pd-l1
SG11202007646UA (en) 2018-02-13 2020-09-29 Gilead Sciences Inc Pd-1/pd-l1 inhibitors
TWI712412B (zh) 2018-04-19 2020-12-11 美商基利科學股份有限公司 Pd‐1/pd‐l1抑制劑
TWI732245B (zh) 2018-07-13 2021-07-01 美商基利科學股份有限公司 Pd‐1/pd‐l1抑制劑
CN112955435A (zh) 2018-10-24 2021-06-11 吉利德科学公司 Pd-1/pd-l1抑制剂
WO2021011891A1 (en) 2019-07-18 2021-01-21 Gilead Sciences, Inc. Long-acting formulations of tenofovir alafenamide
CN110971969B (zh) * 2019-12-09 2021-09-07 北京字节跳动网络技术有限公司 视频配乐方法、装置、电子设备及计算机可读存储介质
CN110992993B (zh) * 2019-12-17 2022-12-09 Oppo广东移动通信有限公司 视频编辑方法、视频编辑装置、终端和可读存储介质
AU2021237718B2 (en) 2020-03-20 2023-09-21 Gilead Sciences, Inc. Prodrugs of 4'-C-substituted-2-halo-2'-deoxyadenosine nucleosides and methods of making and using the same
BR112022022335A2 (pt) 2020-05-05 2023-01-10 Teon Therapeutics Inc Moduladores de receptor canabinoide tipo 2 (cb2) e usos dos mesmos
US11818408B2 (en) * 2021-03-03 2023-11-14 James R. Jeffries Mechanism to automate the aggregation of independent videos for integration
TW202325306A (zh) 2021-09-02 2023-07-01 美商天恩治療有限公司 改良免疫細胞之生長及功能的方法
WO2023081730A1 (en) 2021-11-03 2023-05-11 Teon Therapeutics, Inc. 4-hydroxy-2-oxo-1,2-dihydro-1,8-naphthyridine-3-carboxamide derivatives as cannabinoid cb2 receptor modulators for the treatment of cancer
WO2023097211A1 (en) 2021-11-24 2023-06-01 The University Of Southern California Methods for enhancing immune checkpoint inhibitor therapy
WO2024015372A1 (en) 2022-07-14 2024-01-18 Teon Therapeutics, Inc. Adenosine receptor antagonists and uses thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003259302A (ja) * 2002-02-28 2003-09-12 Fuji Xerox Co Ltd 音楽ビデオ自動的制作のための、方法、情報が記憶されている情報記憶媒体を含む製品およびプログラム
JP2003288094A (ja) * 2002-01-23 2003-10-10 Konica Corp 電子アルバムを記録した情報記録媒体及びスライドショー実行プログラム
KR20040077748A (ko) * 2002-01-23 2004-09-06 코니카 미놀타 홀딩스 가부시키가이샤 화상 배신 장치
JP2012015809A (ja) * 2010-06-30 2012-01-19 Kddi Corp 楽曲選択装置、楽曲選択方法および楽曲選択プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1666967B1 (en) * 2004-12-03 2013-05-08 Magix AG System and method of creating an emotional controlled soundtrack
US20070154164A1 (en) * 2005-01-12 2007-07-05 Liu Samson J Converting a still image in a slide show to a plurality of video frame images
US20060204214A1 (en) 2005-03-14 2006-09-14 Microsoft Corporation Picture line audio augmentation
US8295683B2 (en) * 2007-04-23 2012-10-23 Hewlett-Packard Development Company, L.P. Temporal occlusion costing applied to video editing
SG150415A1 (en) * 2007-09-05 2009-03-30 Creative Tech Ltd A method for incorporating a soundtrack into an edited video-with-audio recording and an audio tag
US8769560B2 (en) 2009-10-13 2014-07-01 At&T Intellectual Property I, L.P. System and method to obtain content and generate modified content based on a time limited content consumption state
US8327268B2 (en) 2009-11-10 2012-12-04 Magix Ag System and method for dynamic visual presentation of digital audio content
US20120303710A1 (en) * 2011-05-27 2012-11-29 Gracenote, Inc. Systems and methods for generating and employing a social media graph
WO2013173479A1 (en) * 2012-05-15 2013-11-21 H4 Engineering, Inc. High quality video sharing systems
US9747949B2 (en) * 2014-02-10 2017-08-29 Google Inc. Providing video transitions
US20150339301A1 (en) * 2014-05-20 2015-11-26 Syn Holdings LLC Methods and systems for media synchronization
CN105072354A (zh) * 2015-07-17 2015-11-18 Tcl集团股份有限公司 一种利用多张照片合成视频流的方法及系统
US20170091831A1 (en) * 2015-09-25 2017-03-30 Bookgrabbr, Inc. Automated generation of content-limited previews for electronic media in a sharing platform

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288094A (ja) * 2002-01-23 2003-10-10 Konica Corp 電子アルバムを記録した情報記録媒体及びスライドショー実行プログラム
KR20040077748A (ko) * 2002-01-23 2004-09-06 코니카 미놀타 홀딩스 가부시키가이샤 화상 배신 장치
JP2003259302A (ja) * 2002-02-28 2003-09-12 Fuji Xerox Co Ltd 音楽ビデオ自動的制作のための、方法、情報が記憶されている情報記憶媒体を含む製品およびプログラム
JP2012015809A (ja) * 2010-06-30 2012-01-19 Kddi Corp 楽曲選択装置、楽曲選択方法および楽曲選択プログラム

Also Published As

Publication number Publication date
WO2018044329A1 (en) 2018-03-08
AU2016421906A1 (en) 2019-03-28
CN109891900A (zh) 2019-06-14
KR20190039324A (ko) 2019-04-10
CA3035527A1 (en) 2018-03-08
US20180061457A1 (en) 2018-03-01
US10734026B2 (en) 2020-08-04

Similar Documents

Publication Publication Date Title
US10734026B2 (en) Systems and methods for dynamically providing video content based on declarative instructions
US10491644B2 (en) Systems and methods to present responses to an event in a social network
US10381044B2 (en) Systems and methods for generating videos based on selecting media content items and moods
US11321388B2 (en) Systems and methods for generating and sharing content
JP6894373B2 (ja) メディアコンテンツ上に重ね合わされるテキストのソーシャルリマークスを提供するためのシステムおよび方法
JP6449905B2 (ja) 対話式メディア・コンテンツ交換のためのシステムおよび方法
US11126344B2 (en) Systems and methods for sharing content
US10984183B1 (en) Systems and methods for sharing content
US11023611B2 (en) Systems and methods for trigger-based modification of privacy settings associated with posts
US11704008B2 (en) Systems and methods for augmenting content
US11340758B1 (en) Systems and methods for distributing content
US10764221B1 (en) Systems and methods for sharing content
US20190206102A1 (en) Systems and methods for enhancing content
US10440026B2 (en) Systems and methods for providing public ephemeral media content without requiring subscription
US20220094658A1 (en) Systems and methods for interactive exchange of media messages
JP6687752B2 (ja) 階層アーキテクチャに基づきビデオのデータ分析を提供するためのシステムおよび方法
US20190208245A1 (en) Systems and methods for generating content streams

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200915

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210413