質問: youtubeにアップロードするための正確なmp4(h264)形式を作成します ffmpegを使用して、ビデオをmp3と画像から変換してyoutubeにアップロードしています。アップロード後、変換は失敗します。理由は不明です。問題はフォーマットにあると思います。ちなみに、5分の長さのファイルをアップロードしている場合、このファイルを30秒アップロードすると失敗します。私はyoutubeからmp4ファイルをダウンロードしています。それから私はそれをアップロードしました、それは非常に速く行われます。したがって、素晴らしい解決策は、ビデオをグーグルが行うのと同じフォーマットに変換することです。mpegで次の出力が得られました。ffmpeg version n-44264-g070b0e1 copyright (c) 2000-2012 the ffmpeg developers built on sep 7 2012 17:38:57 with gcc 4.7.1 (gcc) configuration: --enable-gpl --enable-version3 --disable-pthreads --enable-runt ime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass - -enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-l ibfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopenj peg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheo ra --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --ena ble-zlib libavutil 51. 72.100 / 51. 72.100 libavcodec 54. 55.100 / 54. 55.100 libavformat 54. 25.105 / 54. 25.105 libavdevice 54. 2.100 / 54. 2.100 libavfilter 3. 16.100 / 3. 16.100 libswscale 2. 1.101 / 2. 1.101 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'youtubetrack0.mp4': metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2012-10-02 22:58:57 duration: 00:06:46.66, start: 0.000000, bitrate: 176 kb/s stream #0:0(und): video: h264 (constrained baseline) (avc1 / 0x31637661), yu v420p, 450x360, 78 kb/s, 6 fps, 6 tbr, 12 tbn, 12 tbc metadata: creation_time : 1970-01-01 00:00:00 handler_name : videohandler stream #0:1(und): audio: aac (mp4a / 0x6134706d), 44100 hz, stereo, s16, 95 kb/s metadata: creation_time : 2012-10-02 22:58:57 handler_name : isomedia file produced by google, 5-11-2011 グーグルが内部的に行うのと同じフォーマットを与えるようにffmpegパラメータを構築することは可能ですか?上記の情報で十分ですか?必要なパラメータを作成できませんでした。たとえば、tbnの設定方法や、「stream#0:1(und):audio:」で95 kb/sが何を意味するのかわかりません。今私はただします:ffmpeg -i videoimage.jpg -i audio.mp3 video.mp4私が持っている情報:ffmpeg version n-44998-gdf82454 copyright (c) 2000-2012 the ffmpeg developers built on oct 2 2012 23:03:12 with gcc 4.7.1 (gcc) configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-pthreads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --en able-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschroedinger - -enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc -- enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enab le-libxavs --enable-libxvid --enable-zlib libavutil 51. 73.101 / 51. 73.101 libavcodec 54. 63.100 / 54. 63.100 libavformat 54. 29.105 / 54. 29.105 libavdevice 54. 3.100 / 54. 3.100 libavfilter 3. 19.102 / 3. 19.102 libswscale 2. 1.101 / 2. 1.101 libswresample 0. 16.100 / 0. 16.100 libpostproc 52. 1.100 / 52. 1.100 input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4': metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : lavf54.25.105 duration: 00:06:46.81, start: 0.000000, bitrate: 129 kb/s stream #0:0(und): video: h264 (high) (avc1 / 0x31637661), yuvj420p, 450x360, 3392 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc metadata: handler_name : videohandler stream #0:1(und): audio: aac (mp4a / 0x6134706d), 44100 hz, stereo, s16, 127 kb/s metadata: handler_name : soundhandler このビデオは、youtubeでの変換に失敗します。また、他のvcode parmamと出力ファイルの拡張子(mp4、wmv、avi)を使用しようとしましたが、失敗しました。助けになります。
回答: youtubeは、フィードしたほとんどすべてのものを使用できるはずです。提供する正確な形式に関係なく、常にビデオをトランスコードします。たとえば、アップロード時にmp4コンテナー内にある場合でも、ビデオに異なる解像度やflvやwebmなどの他のコンテナーを提供する必要があるためです。youtube用のビデオを制作するための基本的なコマンドは次のとおりです。ffmpeg -i input.avi -c:v libx264 -c:a aac -strict experimental -b:a 192k out.mp4 品質を変更するだけで、最終的には-rでフレームレートを、-s:vでビデオサイズを変更して、 高度なエンコード仕様 に一致させる必要があります。したがって、ビデオは柱またはレターボックス化(つまり、黒い境界線付き)。その他のオプションとffmpegの一般的な紹介については、ブログエントリをお読みください: ffmpeg:究極のビデオおよびオーディオ操作ツール ただし、ループする1つの画像を含む動画を作成しているため、ffmpegに-loop 1で指定された時間、-tで画像をループするように指示する必要があります。 5分:ffmpeg -loop 1 -f image2 -i image.jpg -c:v libx264 -t 00:05:00.000 out.mp4 オーディオストリームでは、2番目の-iパラメータを追加するだけです。ffmpeg -loop 1 -f image2 -i image.jpg -i audio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -t 00:05:00.000 out.mp4 ffmpegはストリームを自動的にマッピングし、画像をh.264ビデオに、オーディオをaacにマッピングします。stream mapping: stream #0:0 -> #0:0 (mjpeg -> libx264) stream #1:0 -> #0:1 (mp3 -> aac) この動画はyoutubeと互換性があり、フレームレートは25です。これを変更する場合は、-rを使用して、別のフレームレートを設定してください。フレームレート1で動画をyoutubeに正常にアップロードしました。これは、バックグラウンドでループしている画像とオーディオトラックが1つしかない場合は問題ではないためです。