2017-06-14 131 views
0

目前,我正在努力完成我想在Synology DiskStation上使用perl腳本實現的任務。 我不確定的是使用ffmpeg命令。 實際上,DiskStation支援硬體編碼,並且對MKV檔案的編碼效果非常好。唯一缺少的是:我不想編碼爲MKV,因爲使用其他剪切軟件很難處理這些文件。 因此,我想再次編碼爲傳輸流。 我目前使用這個命令:ffmpeg:將傳輸流(MPEG2或h264)重新編碼爲另一個傳輸流(h264)

sudo ffmpeg -hide_banner -loglevel verbose -vaapi_device /dev/dri/renderD128 -i my_input_file.ts -map 0:v -map 0:a -c:v h264_vaapi -vf yadif,format=nv12,hwupload -y -b:v my_bitrate my_output_file.ts 

現在,我總是得到一個錯誤:

Automatic encoder selection failed for output stream #0:1. Default encoder for format mpegts (codec mp2) is probably disabled. Please choose an encoder manually. 
Error selecting an encoder for stream 0:1 

對我來說,它看起來像它的不承認,我想用H264編碼,而不是傳輸流的默認編碼器。

對此的任何想法?

說明:

  • 的映射是爲了擺脫不支持流,如圖文電視,也減少了一些流,因爲我得到一種以上的語言流正常。因爲只有允許root(在所有系統上可能)使用VAAPI設備上的Synology

這將是巨大的,如果有人可以給我一個伸出援助之手的,這是需要

  • 須藤。

    謝謝, 的Matthias

  • 回答

    0

    誤差涉及音頻流。默認的編碼器是mp2,但你的版本似乎沒有它。添加-c:a aac(更安全)或-c:a copy。如果輸入音頻編解碼器被ffmpeg的MPEG-TS複用器支持,後者將工作。

    +0

    太好了,非常感謝!那就是訣竅。雖然我當然知道mp2編解碼器,但我沒有想到音頻可能存在問題。 – MatMike