如何开播客(Podcast)
概述
最近买了一台Sony D100录音砖, 录音效果极赞.于是录了几次TUNA协会的金枪鱼之夜技术沙龙活动.但光自己录不分享实在是耍流氓.于是准备开一个Podcast.
Podcast实际上就是加了一些iTunes特定标签的RSS.规范见Apple中国-制作播客, 或参见英文版.
而Podcast的RSS格式挺麻烦的, 懒得读文档的话, 可以直接使用Podcast RSS在线生成器.
iTunes并不负责托管你的mp3/m4a/mp4/epub等文件, 因此你需要自行解决.
RSS按格式写好之后, 可以通过iTunes或iPhone的播客来订阅, 也可以测试通过之后, 提交给iTunes Store, 来借Apple的平台进行推广.
哦对了, 还需要准备一个1400x1400像素的方形图做Logo.
最后直接开一个Apache, 把RSS内容写到podcast.xml
(或其它的xml名字), 发布订阅就好啦.
Bug 1:
貌似这个在线生成器生成的pubDate字段有问题, 可能导致原生的podcast显示的时间为2001年1月1日, 按Apple的说法是要严格符合RFC 2822
Wed, 15 Jun 2014 19:00:00 UTC+8
重定向
如果你的订阅URL中途有变动, iTunes提供了一个标签用于重定向, 省去通知原有订户的烦恼.
在Channel段里加一个new-feed-url
即可:
<itunes:new-feed-url>http://podcast.tuna.moe/podcast.xml</itunes:new-feed-url>
订阅方法
- 电脑上的iTunes
- iPhone上的播客
- Marco Arment 的 Overcast, 目前 Overcast 2.0 免费啦, 推荐尝试.
- iOS 上比较推荐的还有 Castro, 虽然是收费的.
- 虽然 iOS 9 原生的改进不错, 但是据说还不咋地
- Android上的
Podcast & Radio Addict
- Linux 的 banshee, rythmbox, amarok
- 如何订阅 IPN 出品的播客?
首先你需要一个泛用型(或称通用型)播客客户端软件. 在 iOS 上我们第一推荐的是Castro. 若您暂时不打算为播客客户端付费, 也可以用苹果自家出的那个紫色图标的 Podcasts, 它是免费的, 并已预装在了 iOS 8 上. 在九月即将推出的 iOS 9 里, Podcasts 会全面更新.
在安卓上我们推荐 Pocket Casts, 但很遗憾国内安卓市场上的 Pocket Casts 均为盗版. 若您无法在 Google Play 购买 Pocket Casts, 我们推荐开源且免费的 AntennaPod.
(from http://ipn.li/faq)
参考
- http://www.apple.com/itunes/podcasts/creatorfaq.html
- 另一个Generator: http://clintbellanger.net/itunesrss/
- 另另一个Generator: http://www.podtopia.net/
与 Jekyll 集成
后来我们基于Jekyll实现了一个Markdown博客自动导出podcast.xml的项目, 见https://github.com/tuna/podcast.
附1: 可以接受的几种转码方式
1. FFMPEG: MP3, 效率低, 不推荐
根据这篇帖子, 直接不加任何参数转码, 可能会导致duration加倍.解决方案是
According to #2697: MP3 output duration incorrect in OS X, using the
-write_xing 0
option solves the problem.
ffmpeg -i input.wav -write_xing 0 output.mp3
2. FFMPEG: AAC/M4A[Native], 不推荐
经过我们测试, 64kbps的AAC音频和128kbps的MP3效果接近.
ffmpeg -i input.mp3 -strict -2 -c:a aac -b:a 64k output.m4a
3. FFMPEG: FDK-AAC/M4A, 推荐!
貌似原生的aac编码器不太好用, 需要手动编译libfdk_aac
ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
如果不想手动编译FFMPEG的话, 可以
sudo apt-get install libfdk-aac-dev
git clone https://github.com/nu774/fdkaac
cd fdkaac && autoreconf -i && ./configure && make && sudo make install
fdkaac -b64000 -p5 tuna.wav -o tuna64k.m4a
或像下面这样用个管道, 省得转wav了
ffmpeg -i ooo.xxx -f wav - | fdkaac -b64000 -p5 - -o tuna64k.m4a
4. FFMPEG: OGG, 从正义的角度,推荐
OGG是开源的, 但是得用128kbps的效果才差不多.
ffmpeg -i tuna128k.m4a -codec:a libvorbis -ab 128k tuna128k.ogg
5. iTunes: AAC, 方便, 推荐
在Mac OS X上, 直接对于WAV格式右键服务->对所选音频文件进行编码
即可.
提供的几种编码格式:
- 口述播客: ABR 22.05kHz AAC (实测是65kbps左右, 谈话类这个基本够了)
- 高质量: 128kbps 44.1kHz AAC
附2: 目前我所使用的脚本
# to_aac.sh
ffmpeg -i $1 -f wav - | fdkaac -b64000 -p5 - -o ./m4a/$(basename $1 .mp3).m4a
# to_ogg.sh
ffmpeg -i $1 -codec:a libvorbis -ab 128k ./ogg/$(basename $1 .mp3).ogg
# to_info.sh
echo $1
echo $(du -b $1|awk {'print $1'})
printf " <itunes:duration>"
printf $(ffprobe $1 2>&1| grep Duration|cut -d, -f1|awk {'print $2'}|cut -d. -f1)
printf "</itunes:duration>"
echo
附3: Tuna的示例
podcast.xml
如下:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
<channel>
<title>Tunight - 金枪鱼之夜</title>
<link></link>
<language>zh</language>
<copyright>Tsinghua University TUNA Association</copyright>
<itunes:subtitle></itunes:subtitle>
<itunes:author>TUNA</itunes:author>
<itunes:summary>金枪鱼之夜</itunes:summary>
<itunes:owner>
<itunes:name>Wang Kang</itunes:name>
<itunes:email>scateu@gmail.com</itunes:email>
</itunes:owner>
<itunes:image href="http://laser.scateu.me/tuna.png" />
<itunes:category text="Technology"/>
<item>
<title>Tunight #2 正则表达式讲座</title>
<itunes:author>TUNA</itunes:author>
<itunes:subtitle>正则表达式讲座</itunes:subtitle>
<itunes:summary>正则表达式讲座, 与电子系合作的例行讲座.</itunes:summary>
<itunes:image href="http://laser.scateu.me/tuna.png" />
<enclosure url="http://laser.scateu.me/2015-10-17-%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e8%ae%b2%e5%ba%a7.m4a" length="29918464" type="audio/mpeg"/>
<guid></guid>
<pubDate>Sat, 17 Oct 2015 14:00:00 UTC+8</pubDate>
<itunes:duration>01:01:35</itunes:duration>
</item>
<item>
<title>Tunight #1 国庆的尾巴</title>
<itunes:author>TUNA</itunes:author>
<itunes:subtitle></itunes:subtitle>
<itunes:summary>盒子咖啡馆</itunes:summary>
<itunes:image href="http://laser.scateu.me/tuna.png" />
<enclosure url="http://laser.scateu.me/2015-10-07-%e9%87%91%e6%9e%aa%e9%b1%bc%e4%b9%8b%e5%a4%9c.m4a" length="78251570" type="audio/mpeg"/>
<guid></guid>
<pubDate>Wed, 07 Oct 2015 18:00:00 UTC+8</pubDate>
<itunes:duration>02:41:06</itunes:duration>
</item>
</channel>
</rss>
附4: 一行脚本搭建自己的临时Podcast
pip install podcats
youtube-dl -o '%(id)s.%(ext)s' -f bestaudio $@
podcats --host 0.0.0.0 --port 8080 --title podcats serve /path/to/podcasts