2016-12-30 273 views
0

我試圖使用FFMPEG將mp4剪輯轉換爲h264字節流格式。我已經成功編譯了源自libx264的FFMPEG。如何將mp4轉換爲h264使用FFMPEG添加AUD

查看libx264下的FFMPEG(版本3.2.2)的文檔,有一個bool標誌-aud。在online documentation它給人的例子

ffmpeg -i input.flac -id3v2_version 3 out.mp3 

使用這種格式,下面的命令作品,但在輸出文件不會產生所需AUD中:

ffmpeg -i input.mp4 -codec:v libx264 -aud 1 output.h264 

我也嘗試過不同的變種與此包括:

ffmpeg -i input.mp4 -vcodec libx264 -aud 1 output.h264 
ffmpeg -i input.mp4 -aud 1 output.h264 

我assum e有些事我誤解了執行這個操作。我基本上想要在mp4容器中拍攝h264電影,並將其轉儲爲添加了AUD的h264流。任何想法爲什麼這不起作用?

(我也嘗試使用帶有-aud標誌的x264,也運行正常,但沒有產生所需的輸出)。

回答

1
ffmpeg -i input.mp4 -x264opts aud=1 output.h264 
+0

感謝您的鏈接,我需要進一步觀察它們。儘快嘗試你提供的命令雖然不會在輸出中產生AUDs(儘管它比我之前做的要快得多)。我也嘗試添加-aud 1標誌無濟於事。從第二個鏈接我嘗試使用它們只是output.h264而不是output.ts,它仍然無法正常工作。他們都將第一個訪問單元類型作爲SEI(6),而不是我認爲是附件B格式的AUD(9)。事實上,我無法在輸出文件的十六進制轉儲中找到任何預期的AUD單位(00 00 01 69)。 – SyntheticGio

+1

請參閱https://ffmpeg.org/ffmpeg-codecs.html#Options-23 – Mulvya

+1

當然,使用'-c copy'時,它不會起作用,因爲libx264不在場。 – Mulvya

1

由於MPEG-TS複用器創建AUD中,此兩步驟的非破壞性過程的工作:

ffmpeg -i in.mp4 -c copy -map v -vbsf h264_mp4toannexb in.ts 

然後

ffmpeg -i in.ts -c copy -map v -f h264 in.h264 
+0

我得到這個方法的錯誤(我認爲,因爲除了h264第一個流之外顯然還有mjpeg格式的第二個流),它抱怨mjpeg不被支持。我想我需要添加標誌只使用第一個流(#0:0)。我隱約記得在文檔中遇到了如何做到這一點,但我記不起手。 – SyntheticGio

+1

在這種情況下,使用'-map 0:v:0'而不是'-map v' – Mulvya