TSファイルをffmpegでmp4にエンコード
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
[PR]
[PR]
開始行:
&color(red){2014.03.26更新};&br;
#contents
*はじめに [#yb05b206]
これからの動画ファイルはmp4だ!ということで、今回は地デジ...
このページでは、録画からエンコードまでの効率(いかに手間...
***環境 [#k4c291f7]
--Scientific Linux 6.1(後にCentOS 6.3に変更)&br;
--アースソフト PT2&br;
--ソースファイル・・・PT2から出力されたTSファイル
--ffmpeg・・・FFmpeg version 0.6.1, Copyright (c) 2000-20...
後にアップデート後、ffmpeg version 1.1 Copyright (c) 2000...
*ffmpegのインストール [#hd91e897]
yumにてffmpeg-develをインストールします。通常版だと音声の...
私は、この問題はffmpegの設定で回避するものと思い込み、ハ...
# yum install ffmpeg-devel
***参考(エンコード中にでてくるエラー) [#tfbcdd73]
Error while decoding stream #0.1
Error while decoding stream #0.1
Error while decoding stream #0.1
Error while decoding stream #0.1
この問題は、[[ぱぱネット(仮)(2009-07-01)>http://linux.p...
しかし、わざわざソースからコンパイルする事は避けたかった...
*mp4エンコードの設定 [#gecee4a3]
エンコードの際は、画像のサイズや画質など多くの設定を指定...
細かな画質の設定はオプションでプリセットファイルを指定し...
#ref(libx264.ffpreset)&br;
-fpre /var/www/html/epgrec/libx264.ffpreset (ver.0.6.x以...
-vpre /var/www/html/epgrec/libx264.ffpreset (ver.0.5.xの...
*ffmpegのオプション設定 [#u9e16bd1]
チューナーから取り出したTSファイル(生TS)は、何も加工しな...
しかも、録画のタイミングによっては、ワンセグ動画がHD動画...
が選択されてしまうことがあります。&br;
この問題を解決するためには、ffmpegのオプションでStreamID...
**StreamIDを調査する方法 [#u8e0f674]
StreamIDはffmpegで簡単に調べることができます。
$ ffmpeg -y -i [生TSファイル]
上記コマンドを実行すると、以下のような結果が出力されます...
Last message repeated 1 times
[h264 @ 0x85aab10]decode_slice_header error
[h264 @ 0x85aab10]no frame!
Seems stream 0 codec frame rate differs from container f...
Seems stream 2 codec frame rate differs from container f...
Input #0, mpegts, from 'GR16_20100807215400_201008072200...
Duration: 00:06:00.23, start: 85253.616078, bitrate: 1...
Program 2064 ~ÍÂÓKhF|J|Aw
Stream #0.0[0x111]: Video: mpeg2video, yuv420p, 1440...
Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s1...
Program 2065 ~ÍÂÓKhF|J|Aw²
Stream #0.0[0x111]: Video: mpeg2video, yuv420p, 1440...
Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s1...
Program 2066 ~ÍÂÓKhF|J|Aw³
Stream #0.0[0x111]: Video: mpeg2video, yuv420p, 1440...
Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s1...
Program 2448 ~ÍÂÓKhF|J|Aw7HBS
Stream #0.2[0x281]: Video: h264, yuv420p, 320x180, 1...
Stream #0.3[0x283]: Audio: aac, 24000 Hz, stereo, s1...
Program 2199 ~Ç|¬¤É
At least one output file must be specified
上記結果より、StreamIDが#0.0, #0.1, #0.2, #0.3の4種類存...
mpeg2video ・・・ 1440x1080 と表示されているところがHD動...
音声の方は、ビットレートが高い方の193kb/sとなっている方に...
-map 0.0 -map 0.1
とすることでHD画像をエンコードできることになります。&br;
***epgrecに対応させる方法 [#r2ed6ece]
TSファイルをエンコードする際、StreamIDをいちいち確認する...
そこで、StreamIDを自動で認識する簡単なスクリプトtsencode....
&color(red){2012.01.23音声のビットレートを誤認する不具合...
#ref(tsencode.pl.txt)
ダウンロード後、拡張子txtは削除してください。&br;
epgrecに組み込む場合は、do-record.shを書き換えます。&br;
PERL=/usr/bin/perl <- perlの実行パス
ENCPROG=/var/video/tsencode.pl <- tsencode.plを置いた場所
elif [ ${MODE} == 1 ]; then
$RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT}...
$PERL $ENCPROG ${OUTPUT}_tmp.ts ${OUTPUT} 480x360 <-...
rm ${OUTPUT}_tmp.ts
elif [ ${MODE} == 2 ]; then
・・・続く
また、config.phpも$MODEにあわせて書き換えます。&br;
$RECORD_MODE = array(
// ※ 0は必須で、変更不可です。
0 => array(
'name' => 'Full TS', // モードの表示名
'suffix' => '.ts', // ファイル名のサフィックス
),
1 => array(
'name' => 'MPEG4 640x360',
'suffix' => '.mp4',
),
2 => array(
・・・続く
また、tsencode.pl内の変数$cmdと$ffpresetも個々の環境にあ...
**地デジ用の画像サイズとアスペクト比の指定 [#qbd3b1b1]
地デジはフルHDサイズで視聴されますが、放送データ自体の画...
ffmpeg -iの実行結果からもわかりますが、1440x1080と16:9と...
じゃあ画像サイズはどのように指定すればエンコードの効率が...
そこで、5分の生TSファイル523.2MBをいくつか条件を変えてエ...
|条件| -s | -aspect |エンコード時間|ファイルサイズ|再生(V...
|(1)|1920x1080|無し|30分58秒|56.1MB|可|可|
|(2)|1440x1080|16:9|22分8秒|46.0MB|可|可|
|(3)|640x360|無し|4分47秒|12.3MB|可|可|
|(4)|480x360|16:9|4分23秒|10.9MB|可|可|
条件(1)と(2)、条件(3)と(4)はそれぞれ同じ画像サイズのファ...
**音ズレ対策 [#k9103f7c]
上記コマンドでは、エンコードに成功はするものの、音声が映...
そこで、画像と音声の同期をとるオプション -vsync 1を追加し...
最終的なコマンドです。&br;
$ ffmpeg -y -i [生TSファイル] -f mp4 -vcodec libx264 -vp...
-bufsize 20000k -maxrate 25000k -vsync 1 -acodec libfaa...
*参照元URL [#z5447b69]
[[がべこれログ - Garbage Collection Log>http://d.hatena.n...
*コメント欄 [#l4d8e5a4]
#pcomment_nospam(,10,avobe)
終了行:
&color(red){2014.03.26更新};&br;
#contents
*はじめに [#yb05b206]
これからの動画ファイルはmp4だ!ということで、今回は地デジ...
このページでは、録画からエンコードまでの効率(いかに手間...
***環境 [#k4c291f7]
--Scientific Linux 6.1(後にCentOS 6.3に変更)&br;
--アースソフト PT2&br;
--ソースファイル・・・PT2から出力されたTSファイル
--ffmpeg・・・FFmpeg version 0.6.1, Copyright (c) 2000-20...
後にアップデート後、ffmpeg version 1.1 Copyright (c) 2000...
*ffmpegのインストール [#hd91e897]
yumにてffmpeg-develをインストールします。通常版だと音声の...
私は、この問題はffmpegの設定で回避するものと思い込み、ハ...
# yum install ffmpeg-devel
***参考(エンコード中にでてくるエラー) [#tfbcdd73]
Error while decoding stream #0.1
Error while decoding stream #0.1
Error while decoding stream #0.1
Error while decoding stream #0.1
この問題は、[[ぱぱネット(仮)(2009-07-01)>http://linux.p...
しかし、わざわざソースからコンパイルする事は避けたかった...
*mp4エンコードの設定 [#gecee4a3]
エンコードの際は、画像のサイズや画質など多くの設定を指定...
細かな画質の設定はオプションでプリセットファイルを指定し...
#ref(libx264.ffpreset)&br;
-fpre /var/www/html/epgrec/libx264.ffpreset (ver.0.6.x以...
-vpre /var/www/html/epgrec/libx264.ffpreset (ver.0.5.xの...
*ffmpegのオプション設定 [#u9e16bd1]
チューナーから取り出したTSファイル(生TS)は、何も加工しな...
しかも、録画のタイミングによっては、ワンセグ動画がHD動画...
が選択されてしまうことがあります。&br;
この問題を解決するためには、ffmpegのオプションでStreamID...
**StreamIDを調査する方法 [#u8e0f674]
StreamIDはffmpegで簡単に調べることができます。
$ ffmpeg -y -i [生TSファイル]
上記コマンドを実行すると、以下のような結果が出力されます...
Last message repeated 1 times
[h264 @ 0x85aab10]decode_slice_header error
[h264 @ 0x85aab10]no frame!
Seems stream 0 codec frame rate differs from container f...
Seems stream 2 codec frame rate differs from container f...
Input #0, mpegts, from 'GR16_20100807215400_201008072200...
Duration: 00:06:00.23, start: 85253.616078, bitrate: 1...
Program 2064 ~ÍÂÓKhF|J|Aw
Stream #0.0[0x111]: Video: mpeg2video, yuv420p, 1440...
Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s1...
Program 2065 ~ÍÂÓKhF|J|Aw²
Stream #0.0[0x111]: Video: mpeg2video, yuv420p, 1440...
Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s1...
Program 2066 ~ÍÂÓKhF|J|Aw³
Stream #0.0[0x111]: Video: mpeg2video, yuv420p, 1440...
Stream #0.1[0x112]: Audio: aac, 48000 Hz, stereo, s1...
Program 2448 ~ÍÂÓKhF|J|Aw7HBS
Stream #0.2[0x281]: Video: h264, yuv420p, 320x180, 1...
Stream #0.3[0x283]: Audio: aac, 24000 Hz, stereo, s1...
Program 2199 ~Ç|¬¤É
At least one output file must be specified
上記結果より、StreamIDが#0.0, #0.1, #0.2, #0.3の4種類存...
mpeg2video ・・・ 1440x1080 と表示されているところがHD動...
音声の方は、ビットレートが高い方の193kb/sとなっている方に...
-map 0.0 -map 0.1
とすることでHD画像をエンコードできることになります。&br;
***epgrecに対応させる方法 [#r2ed6ece]
TSファイルをエンコードする際、StreamIDをいちいち確認する...
そこで、StreamIDを自動で認識する簡単なスクリプトtsencode....
&color(red){2012.01.23音声のビットレートを誤認する不具合...
#ref(tsencode.pl.txt)
ダウンロード後、拡張子txtは削除してください。&br;
epgrecに組み込む場合は、do-record.shを書き換えます。&br;
PERL=/usr/bin/perl <- perlの実行パス
ENCPROG=/var/video/tsencode.pl <- tsencode.plを置いた場所
elif [ ${MODE} == 1 ]; then
$RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT}...
$PERL $ENCPROG ${OUTPUT}_tmp.ts ${OUTPUT} 480x360 <-...
rm ${OUTPUT}_tmp.ts
elif [ ${MODE} == 2 ]; then
・・・続く
また、config.phpも$MODEにあわせて書き換えます。&br;
$RECORD_MODE = array(
// ※ 0は必須で、変更不可です。
0 => array(
'name' => 'Full TS', // モードの表示名
'suffix' => '.ts', // ファイル名のサフィックス
),
1 => array(
'name' => 'MPEG4 640x360',
'suffix' => '.mp4',
),
2 => array(
・・・続く
また、tsencode.pl内の変数$cmdと$ffpresetも個々の環境にあ...
**地デジ用の画像サイズとアスペクト比の指定 [#qbd3b1b1]
地デジはフルHDサイズで視聴されますが、放送データ自体の画...
ffmpeg -iの実行結果からもわかりますが、1440x1080と16:9と...
じゃあ画像サイズはどのように指定すればエンコードの効率が...
そこで、5分の生TSファイル523.2MBをいくつか条件を変えてエ...
|条件| -s | -aspect |エンコード時間|ファイルサイズ|再生(V...
|(1)|1920x1080|無し|30分58秒|56.1MB|可|可|
|(2)|1440x1080|16:9|22分8秒|46.0MB|可|可|
|(3)|640x360|無し|4分47秒|12.3MB|可|可|
|(4)|480x360|16:9|4分23秒|10.9MB|可|可|
条件(1)と(2)、条件(3)と(4)はそれぞれ同じ画像サイズのファ...
**音ズレ対策 [#k9103f7c]
上記コマンドでは、エンコードに成功はするものの、音声が映...
そこで、画像と音声の同期をとるオプション -vsync 1を追加し...
最終的なコマンドです。&br;
$ ffmpeg -y -i [生TSファイル] -f mp4 -vcodec libx264 -vp...
-bufsize 20000k -maxrate 25000k -vsync 1 -acodec libfaa...
*参照元URL [#z5447b69]
[[がべこれログ - Garbage Collection Log>http://d.hatena.n...
*コメント欄 [#l4d8e5a4]
#pcomment_nospam(,10,avobe)
ページ名: