スキップしてメイン コンテンツに移動

RSSからYoutube/Podcast配信

動画作成

ffmpegを使った音声&映像ミキシング

ffmpegを使って音声ファイル(mp3)と映像ファイル(mp4)をミキシングします。

ライブラリの追加

$ sudo apt install ffmpeg
Pythonプログラム
test.pyに以下のコードを記述します。
subprocessを使ってffmpegをpythonから起動させます。
元となる映像データ(input.mp4)は著作権フリーのものから拾ってきてください。
※映像の長さと音声の長さのより短い方に合わせた動画が作成されます。
またHWエンコードの対応があれば、SWエンコーダー(libx264)ではなくHWエンコーダ―(h264_nvenc)を指定してください。

test.py
import subprocess
from subprocess import PIPE

def makeVideo():
    cmd = 'ffmpeg -y -i /tmp/input.mp4 -i /tmp/temp.mp3 '
    cmd += ' -movflags +faststart -c:a aac -profile:a aac_low -ac 2 -ar 48000 -c:v libx264'
    cmd += ' -vf yadif=0:-1:1 -profile:v high -bf 2 -g 30 -coder 1 -b:v 1M -b:a 384k'
    cmd += ' -pix_fmt yuv420p -map 0:v:0 -map 1:a:0 -shortest '
    cmd += ' /tmp/output.mp4 ' 
    rtn = subprocess.run(cmd, shell=True, stdout=PIPE, stderr=PIPE, text=True)
    return   

以前のgetRss()から上記のmakeVideo()を呼び出します。
逐一動画にしても良いですが、PodcastやYoutubeにアップロードできる回数が限りがありますので、ある程度まとめた音声にしてから作成します。

test.py
def getRss():
    rssUrl = 'https://news.google.com/news/rss/headlines/section/topic/TECHNOLOGY'
    rssLang = '?hl=en-US&gl=US&ceid=US:en'
    feed = feedparser.parse(rssUrl + rssLang)
    for entry in feed.entries:
            link = entry.get('link')
            getBody(link)
    makeVideo()

これで動画を作成できました。次はこの動画をYoutubeにアップロードします。

参考URL:

FFmpeg
 

このブログの人気の投稿

RSSからYoutube/Podcast配信

皆さん、情報収集はどの様にされていますでしょうか? 私は最先端に情報に触れる為、海外ニュースをRSSで購読しているのですが、私の英語力/語彙力では時間が掛かかってしょうがない。 また、できれば目で読むのではなく、音声で聞き流しながら通勤や他の作業中に行いたい。 という事で自動でニュースを収集・要約・翻訳し、それをブログ・ポッドキャスト・Youtubeに自動投稿するPythonプログラムを作成して時短化しました。 その手法を公開してますので参考にしてください。 Bloggerの立ち上げ方 GCPとBloggerの連携 情報収集自動化 Blogger自動投稿 本文要約 翻訳 音声作成 動画作成 Youtubeにアップロード Youtubeの投稿制限の回避方法 Podcast配信 翻訳・要約の改善(GPT-3) 以下のURLで上記から作成したブログやYoutubeを公開しています。参考までに見てください。 ブログ:海外ニュースを仕入れてお届け YouTube:海外Newsを仕入れてお届け Amazon Music:海外ニュースを仕入れてお届け。 Google Podcasts:海外ニュースを仕入れてお届け。 Apple Podcasts:海外ニュースを仕入れてお届け。

Bloggerの立ち上げ

Bloggerとは BloggerはGoogleのサービスの一つで、無料でブログを始めることができます。 Googleアカウントが必要となりますので、ない方はアカウントの作成をお願いします。 Bloggerサイトへのログイン https://www.blogger.com/から「ブログの作成」を選択してください。 Googleアカウントを聞かれるので、Googleアカウントとパスワードを入力してください。 ブログの名前を入力 作成するブログの名前を決めます。これは後から変えられるのでとりあえずは書こうとしてる内容に沿ったものを記入してください。 ブログのURL(インターネット上の所在地)を作成します。 こちらも変更できる(※)のですがので、頻繁に変更すると読者や検索などから外されてしますので、個人名や法人名など変更しないことを前提に名付けた方が良いと思います。 (※「.blogspot.com」以外のカスタムドメインを自分でとって、それを設定することもできます) プロファイルの作成 ブログが作成されるとプロファイルの作成画面が出てきます。ブログ読者に見られることを意識して、ユーザー名やわかりやすい説明を記入しましょう。 以上でブログが作成できました。作成したURLをブラウザに打ち込んでみましょう! 貴方だけのブログサイトが立ち上がりました。 次は GCP(Google Cloud Platform)とBloggerを連携 させてみましょう。 参考: Blogger Help  

GCPとBloggerの連携

GCPのアカウント作成 以下のURLからアカウントを作成します。 今(2021/10/24)なら300$相当のクレジットが付いてきます。 https://console.cloud.google.com/freetrial 携帯番号の登録が必要となります。 クレジットカード(もしくはPaypal)の登録が必要となります。 GCPからBloggerを連携 以下のURLからプロジェクトを作成してください。プロジェクト名は任意です。 https://console.cloud.google.com/projectcreate 以下のURLからBlogger API v3の「有効にする」をクリック https://console.cloud.google.com/apis/library/blogger.googleapis.com 同様に以下の3種類のAPIも有効にしてください。 https://console.cloud.google.com/apis/library/translate.googleapis.com https://console.cloud.google.com/apis/library/texttospeech.googleapis.com https://console.cloud.google.com/apis/library/youtube.googleapis.com 以下のURLをクリックして「デスクトップアプリ」を選択し「名前」に任意の名前を付けて「作成」してください。 https://console.cloud.google.com/apis/credentials/oauthclient これでクライアントIDが作成されました。「クライアントID」と「クライアントシークレット」は他の人に知られない様にしてください。 作成した「デスクトップクライアント:1」を選択すると、「JSONをダウンロード」が選択できるので、「client_secret.json」と名前を変更して保存しておいてください。こちらのファイルを使ってこれから作成するプログラムでGoogleの認証を行います。 次は 情報収集自動化 になります。 参考URL: エンドユーザーとして認証する  |  Google Cloud