このリンクを見つけたとき、最初のマイルストーンに達しました:マップ - ffmpeg -- 例 #8試してみることにしました:
ffmpeg -probesize 90M -analyzeduration 90M -i my_mpeg2_file.ts
以下を生成します。
[mpegts @ 0x9980f40] max_analyze_duration 90000000 reached at 90000000
Input #0, mpegts, from 'loopbacktestcap.ts':
Duration: 00:16:00.96, start: 17978.139456, bitrate: 695 kb/s
Program 1
Stream #0:0[0x44](): Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 104857 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc
Stream #0:1[0x45](): Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 104857 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc
Stream #0:2[0x46](): Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 104857 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc
2 番目のストリーム (技術的には 3 番目のストリーム) に関する追加のストリームと詳細情報だけでなく、正しい期間も表示されるようになったことに注意してください。それで私は走った:
ffmpeg -probesize 90M -analyzeduration 90M -i my_mpeg2_file.ts -map 0 -c copy map0.mp4
これで 79451050 バイトのファイルmap0.mp4が生成されました。 my_mpeg2_file.tsは 83499636 です。これを vlc で再生しようとすると、再生時間が 9:12 と表示されますが、再生位置をジョグすると、さらに 2 つの vlc ウィンドウが表示されます。開くと、vlc が異常な動作を開始します。再生位置インジケータは進行し続けますが、ビデオ表示領域はハングします。これは単なるバグのある vlc かもしれませんが、この時点で立ち往生しています。ここで私が見逃しているものを誰かが見たら教えてください。
xine
ただし、新しいファイルを再生することはできません (元のファイルを再生すると、6 分の長さであることが示されます。実際には、ファイルを再生すると継続時間カウンターが少しおかしくなり、絶えず変化するため、わかりません)。
それで、私が試した次のコマンドは次のとおりです。
ffmpeg -probesize 90M -analyzeduration 90M -i my_mpeg2_file.ts -map 0 -c libx264 map0x264.mp4
結果のファイル(好奇心のために43652975バイト)を再生しようとすると、vlcで同じ奇妙な動作が発生し、ストリームごとに新しいウィンドウが開き、「ターン」になったときにストリームを再生していることがわかりますそれぞれのウィンドウで、他のウィンドウの他の表示領域をフリーズします。それらを閉じようとすると、すべての再生が停止し、2 つの余分なウィンドウが閉じます。3 つのストリームすべてを同じファイルに保持するのはナンセンスだと思います。
成功!
次の試みは:
ffmpeg -probesize 90M -analyzeduration 90M -i my_mpeg2_file.ts -map 0:0 -c copy map0_0.ts
ffmpeg -probesize 90M -analyzeduration 90M -i my_mpeg2_file.ts -map 0:1 -c copy map0_1.ts
ffmpeg -probesize 90M -analyzeduration 90M -i my_mpeg2_file.ts -map 0:2 -c copy map0_2.ts
その結果、ファイルのサイズは次のようになりました。
4912 map0_0.ts
5372 map0_1.ts
74728 map0_2.ts
map0_0.tsは 20 秒の長さ、map0_1.tsは 1:12 の長さの静止画像、 map0_2.tsは 9:12 です。まさに私が欲しかったものです!そして、私のビデオ編集者はそれらを問題なく受け入れます。解決しました!